På SQL Server 2008+ er det muligt at bruge Table Valued Parameters til at overføre en tabelvariabel til en dynamisk SQL-sætning, så længe du ikke behøver at opdatere værdierne i selve tabellen.
Så ud fra den kode, du postede, kunne du bruge denne tilgang til @TSku
men ikke for @RelPro
Eksempel på syntaks nedenfor.
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
kolonne er inkluderet blot for at demonstrere, at tabelvariablen, der refereres til i det underordnede omfang, absolut er den samme som det ydre omfang i stedet for en kopi.