ESTIMADO(S):
LOGRE CREAR EL PROCEDIMIENTO ALMACENADO: INGRESA EL REGISTRO Y TIENE EL CAMPO codigochar QUE ES COMO UN CODIGO DE SEGUIMIENTO EL CUAL INCREMENTA SEGUN EL LUGAR Y EL AÑO.
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(500) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
BEGIN Tran inserta
BEGIN Try
DECLARE @Ncodigo AS VARCHAR(12)
DECLARE @N AS VARCHAR(12)
DECLARE @A AS INT
DECLARE @CONT AS INT
BEGIN
SET @CONT=0
--SELECT @C=max(codigo) FROM libreta_topograf
SELECT @A=COUNT(codigo) FROM libreta_topograf
WHERE datepart(YEAR,anno)=DATEPART(YEAR,@nanno)
AND codlugar=@ncodlugar
IF @A>0
BEGIN
SET @CONT=@A+1
SELECT @N='Proy'+ RIGHT('00000000'+CAST(@CONT
AS VARCHAR(12)),8) FROM libreta_topograf
SET @Ncodigo=@N
INSERT INTO libreta_topograf(codigochar,descripcion,
tipo_obra,sector,anno,codlugar)
VALUES(@Ncodigo,@ndescripcion,@ntipo_obra,
@nsector,@nanno,@ncodlugar)
END
IF @A=0 OR @A=NULL
BEGIN
SET @N='Proy00000001'
SET @Ncodigo=@N
INSERT INTO libreta_topograf(codigochar,descripcion,
tipo_obra,sector,anno,codlugar)
VALUES(@Ncodigo,@ndescripcion,@ntipo_obra,
@nsector,@nanno,@ncodlugar)
END
--BREAK
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(555), ERROR_LINE() ) + '.'
ROLLBACK TRAN inserta
END Catch
END
GO