Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/04/2011, 09:22
derebus
 
Fecha de Ingreso: diciembre-2010
Mensajes: 28
Antigüedad: 14 años
Puntos: 2
Como obtener el ID pk de una tabla dada

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