На SQL Server 2008+ е възможно да използвате параметри с стойност на таблицата за предаване на променлива на таблица към динамичен SQL израз, стига да не е необходимо да актуализирате стойностите в самата таблица.
Така че от кода, който сте публикували, можете да използвате този подход за @TSku
но не и за @RelPro
Примерен синтаксис по-долу.
CREATE TYPE MyTable AS TABLE
(
Foo int,
Bar int
);
GO
DECLARE @T AS MyTable;
INSERT INTO @T VALUES (1,2), (2,3)
SELECT *,
sys.fn_PhysLocFormatter(%%physloc%%) AS [physloc]
FROM @T
EXEC sp_executesql
N'SELECT *,
sys.fn_PhysLocFormatter(%%physloc%%) AS [physloc]
FROM @T',
N'@T MyTable READONLY',
@[email protected]
physloc
колоната е включена само за да демонстрира, че променливата на таблицата, посочена в дъщерния обхват, определено е същата като външния обхват, а не копие.