Hola a todos,
estoy intentando hacer un procedimiento almacenado que pueda ser
usado para distintas tablas, así que uno de los parámetros es el nombre
de la tabla a utilizar. Para eso hice lo siguiente:
CREATE PROCEDURE [dbo].[TreeRecords]
@IdRoot int,
@TableName nvarchar(50),
@FieldName nvarchar(50),
@ParentField nvarchar(50)
AS
SET NOCOUNT ON
CREATE TABLE #Tree(
LevelNumber smallint,
IdRecord int
PRIMARY KEY (LevelNumber, IdRecord)
)
INSERT INTO #Tree(LevelNumber, IdRecord)
SELECT 0, @IdRoot
FROM [@TableName]
WHERE @FieldName = @IdRoot
... sigue
El procedimiento es creado pero al querer ejecutarlo con
EXEC TreeRecords @IdRoot = 4, @TableName = N'MCS_CUSTOMERGROUPS',
@FieldName = N'CUSG_ID', @ParentField = N'CUSG_CUSG_ID' ;
GO
me da el siguiente error: Msg 208, Level 16, State 1, Procedure
TreeRecords, Line 13
Invalid object name '@TableName'.
Podrían orientarme cómo resolver esto?
Muchas gracias desde ya.
Mauricio
Copenhague, Dinamarca
Leer las respuestas