Ver Mensaje Individual
  #15 (permalink)  
Antiguo 03/03/2013, 20:38
Avatar de junior1920
junior1920
 
Fecha de Ingreso: noviembre-2010
Ubicación: Tumán
Mensajes: 77
Antigüedad: 13 años, 5 meses
Puntos: 1
De acuerdo Respuesta: Procedimeinto Almacenado Generar codigo !!!!!!!

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 original
  1. CREATE PROCEDURE insert_dat_lib_topograf
  2.     @ndescripcion text,
  3.     @ntipo_obra VARCHAR(180),
  4.     @nsector VARCHAR(100),
  5.     @ncodlugar INT,
  6.     @nanno datetime,
  7.     @msg AS VARCHAR(500) OUTPUT
  8.    
  9. AS
  10. BEGIN
  11.     SET NOCOUNT ON;
  12.     BEGIN Tran inserta
  13.     BEGIN Try
  14.         DECLARE @Ncodigo AS VARCHAR(12)
  15.         DECLARE @N AS VARCHAR(12)
  16.         DECLARE @A AS INT
  17.         DECLARE @CONT AS INT
  18.             BEGIN
  19.                 SET @CONT=0
  20.                 --SELECT @C=max(codigo) FROM libreta_topograf
  21.                 SELECT @A=COUNT(codigo) FROM libreta_topograf  
  22.                 WHERE datepart(YEAR,anno)=DATEPART(YEAR,@nanno)
  23.                 AND codlugar=@ncodlugar
  24.                 IF @A>0
  25.                     BEGIN
  26.                         SET @CONT=@A+1
  27.                         SELECT @N='Proy'+ RIGHT('00000000'+CAST(@CONT
  28.                         AS VARCHAR(12)),8) FROM libreta_topograf
  29.                         SET  @Ncodigo=@N
  30.                    
  31.                     INSERT INTO libreta_topograf(codigochar,descripcion,
  32.                     tipo_obra,sector,anno,codlugar)
  33.                     VALUES(@Ncodigo,@ndescripcion,@ntipo_obra,
  34.                     @nsector,@nanno,@ncodlugar)
  35.                     END
  36.                 IF @A=0 OR @A=NULL
  37.                     BEGIN
  38.                         SET @N='Proy00000001'
  39.                         SET  @Ncodigo=@N
  40.                         INSERT INTO libreta_topograf(codigochar,descripcion,
  41.                         tipo_obra,sector,anno,codlugar)
  42.                         VALUES(@Ncodigo,@ndescripcion,@ntipo_obra,
  43.                         @nsector,@nanno,@ncodlugar)
  44.                     END
  45.             --BREAK
  46.             END
  47.         SET @msg = 'Se registro correctamente.'
  48.         COMMIT TRAN inserta
  49.     END try
  50.     BEGIN Catch
  51.         SET @msg = 'Ocurrio un Error: ' + ERROR_MESSAGE() + ' en la línea ' + CONVERT(NVARCHAR(555), ERROR_LINE() ) + '.'
  52.         ROLLBACK TRAN inserta
  53.     END Catch
  54. END
  55. GO

Última edición por junior1920; 03/03/2013 a las 20:40 Razón: PEQUEÑO DETALLE