Necesito ayuda para pasar el parámetro "tipo de tabla definida por el usuario" a sql dinámico, sp_executesql.Pasar parámetro de tabla definido por el usuario a sql dinámico, sp_executesql
Aquí está mi código de ejemplo:
DECLARE @str as nvarchar(Max)
DECLARE @IDLIST AS ListBigintType /* this is my table type, with ItemId column (bigint)*/
INSERT INTO @IDLIST
SELECT DISTINCT bigintid FROM tableWithBigInts WITH(NOLOCK)
set @str ='select * from SomeTable where ID in (select ItemId from @IdTable) '
EXEC sp_executesql @str , @ParamDefs, @IdTable = @IDLIST
Dice: Debe declarar la variable de tabla "@IdTable"
no puedo conseguir que esto funcione, y no puedo conseguir una solución con fusionan (para bigints) ya sea porque el resultado será más de 8000 caracteres.
Lo siento, se me olvidó escribir que cuando estoy escribiendo la pregunta aquí. La consulta ya lo tiene. pero da el mismo error. –
Agregó un ejemplo de trabajo. Verifique el nivel de compatibilidad para su base de datos, desde 'seleccionar nombre, nivel de compatibilidad de sys.databases'? Debe establecerse en 90 o superior, para SQL Server 2005+. – Andomar
El ejemplo que publiqué funciona bien en mi instalación, así que estoy seguro de que puede pasar los parámetros con valores de tabla usando 'sp_executesql' – Andomar