Código SQL:
Ver originalCREATE PROCEDURE insert_dat_lib_topograf
@ndescripcion text,
@ntipo_obra VARCHAR(180),
@nsector VARCHAR(100),
@ncodlugar INT,
@nanno datetime,
@msg AS VARCHAR(100) OUTPUT,
@Ncodigo AS VARCHAR(10)
AS
BEGIN
SET NOCOUNT ON;
BEGIN Tran inserta
BEGIN Try
SET @Ncodigo=(SELECT 'Proy'+RIGHT('00000'+CAST(ROW_NUMBER()
OVER(Partition BY lt.codlugar,YEAR(lt.anno)
ORDER BY lt.codlugar,lt.anno) AS VARCHAR),10) codigochar
FROM libreta_topograf lt
INNER JOIN lugar_libreta_topograf lu
ON lu.codlugar=lt.codlugar)
INSERT INTO libreta_topograf(codigochar,descripcion,
tipo_obra,sector,anno,codlugar)
VALUES(@Ncodigo,@ndescripcion,@ntipo_obra,
@nsector,@nanno,@ncodlugar)
IF @Ncodigo IS NULL
BEGIN
SET @Ncodigo='Proy000001'
INSERT INTO libreta_topograf(codigochar,descripcion,
tipo_obra,sector,anno,codlugar)
VALUES(@Ncodigo,@ndescripcion,@ntipo_obra,
@nsector,@nanno,@ncodlugar)
END
SET @msg = 'Se registro correctamente.'
COMMIT TRAN inserta
END try
BEGIN Catch
SET @msg = 'Ocurrio un Error: ' + ERROR_MESSAGE() + ' en la línea ' + CONVERT(NVARCHAR(255), ERROR_LINE() ) + '.'
ROLLBACK TRAN inserta
END Catch
END
GO
Ocurrio un Error: No se puede insertar el valor NULL en la columna 'codigochar', tabla 'INVENTARIO_L
No funca man