Constancia

SQL_PROC_ID_NUEVO

Dec 7th, 2014
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.30 KB | None | 0 0
  1.  /* ================================================
  2.  -- ******** LLAMADA
  3.  
  4.     DECLARE @ID NUMERIC
  5.      
  6.     --SELECT * FROM tbCargas ORDER BY IDCarga DESC
  7.      
  8.     EXEC @ID = dbo.ID_NUEVO 'CARTERA.dbo.tbClientes','IdCliente'
  9.      
  10.     PRINT @ID
  11.    
  12.    ================================================ */
  13.      
  14.     -- DROP PROCEDURE ID_NUEVO
  15.     CREATE PROCEDURE [dbo].[ID_NUEVO]
  16.                 --***>> PARÁMETROS
  17.                 @TABLA CHAR(100),
  18.                 @COL_ID CHAR(20)
  19.                
  20.     --RETURNS NUMERIC
  21.    
  22.    
  23.     AS
  24.     BEGIN
  25.    
  26.     --DECLARE @TABLA VARCHAR(50)
  27.     --SELECT @TABLA = 'tbCargas'
  28.            
  29.     DECLARE @SQL NCHAR(255)
  30.     DECLARE @MAX_ID NUMERIC
  31.            
  32.     --SELECT COL_ID = COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = @TABLA
  33.      
  34.     SELECT @SQL = 'SELECT @MAX_ID = MAX(' + @COL_ID + ') FROM ' + @TABLA
  35.     EXECUTE sp_executesql @SQL ,N'@MAX_ID varchar(30) OUTPUT', @MAX_ID=@MAX_ID OUTPUT
  36.      
  37.     IF @MAX_ID IS NULL
  38.     BEGIN
  39.         SELECT @MAX_ID = 0
  40.     END
  41.     ELSE
  42.     BEGIN
  43.          SELECT @MAX_ID =@MAX_ID + 1     
  44.     END    
  45.    
  46.     RETURN @MAX_ID
  47.      
  48.     --PRINT 'TABLA : ' + @Tabla
  49.     --PRINT 'COLUMNA ID : ' + @@COL_ID
  50.     --PRINT 'SQL : ' + @SQL
  51.      
  52.     --PRINT 'MAX ID : '  + CONVERT(VARCHAR,@MAX_ID)
  53.            
  54. END
  55.  
  56. GO
Advertisement
Add Comment
Please, Sign In to add comment