Trên SQL Server 2008+, bạn có thể sử dụng Tham số có giá trị bảng để chuyển một biến bảng vào câu lệnh SQL động miễn là bạn không cần cập nhật các giá trị trong chính bảng đó.
Vì vậy, từ mã bạn đã đăng, bạn có thể sử dụng phương pháp này cho @TSku
nhưng không dành cho @RelPro
Cú pháp mẫu bên dưới.
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
cột được bao gồm chỉ để chứng minh rằng biến bảng được tham chiếu trong phạm vi con chắc chắn giống với phạm vi bên ngoài chứ không phải là một bản sao.