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

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(100) OUTPUT,
  8.     @Ncodigo AS VARCHAR(10)
  9.  
  10. AS
  11. BEGIN
  12.     SET NOCOUNT ON;
  13.     BEGIN Tran inserta
  14.     BEGIN Try
  15.        
  16.  
  17.         SET  @Ncodigo=(SELECT 'Proy'+RIGHT('00000'+CAST(ROW_NUMBER()
  18.                         OVER(Partition BY lt.codlugar,YEAR(lt.anno)
  19.                         ORDER BY lt.codlugar,lt.anno) AS VARCHAR),10) codigochar
  20.                         FROM libreta_topograf lt
  21.                         INNER JOIN lugar_libreta_topograf lu
  22.                         ON lu.codlugar=lt.codlugar)
  23.         INSERT INTO libreta_topograf(codigochar,descripcion,
  24.         tipo_obra,sector,anno,codlugar)
  25.         VALUES(@Ncodigo,@ndescripcion,@ntipo_obra,
  26.         @nsector,@nanno,@ncodlugar)
  27.    
  28.         IF @Ncodigo IS NULL
  29.         BEGIN
  30.         SET @Ncodigo='Proy000001'
  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.        
  37.         SET @msg = 'Se registro correctamente.'
  38.         COMMIT TRAN inserta
  39.     END try
  40.     BEGIN Catch
  41.         SET @msg = 'Ocurrio un Error: ' + ERROR_MESSAGE() + ' en la línea ' + CONVERT(NVARCHAR(255), ERROR_LINE() ) + '.'
  42.         ROLLBACK TRAN inserta
  43.     END Catch
  44. END
  45. GO
Ocurrio un Error: No se puede insertar el valor NULL en la columna 'codigochar', tabla 'INVENTARIO_L

No funca man