SQL सर्वर 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
कॉलम को केवल यह प्रदर्शित करने के लिए शामिल किया गया है कि चाइल्ड स्कोप में संदर्भित टेबल वैरिएबल निश्चित रूप से कॉपी के बजाय बाहरी स्कोप के समान है।