Hola quiero crear un procedimiento almacenado donde le pase como parametro el nombre de la tabla y me devuelva el actual ID + 1 ... mi problema es q en el @tabla de la ultima linea aparece como no declarado pero si lo esta ... =S ... que esta mal ¿?
....procedure myID ... @tabla as varchar(100) ...
DECLARE @PrimaryKeyName AS VARCHAR(100)
--Obtengo el nombre del primary key de la tabla
SET @PrimaryKeyName =
(
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE a
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS b
ON a.CONSTRAINT_NAME = b.CONSTRAINT_NAME
WHERE a.table_name = @Tabla and constraint_type = 'Primary key'
)
--Obtengo el ID actual de la tabla
DECLARE @ID AS INT
SELECT @ID = MAX(@PrimaryKeyName) FROM @Tabla