我需要运行一个动态sql,它使用在父级范围内创建的表变量。如何在SQL2008中将表变量传递给动态sql?
答案 0 :(得分:19)
这是一个端到端的例子:
-- Define a custom TABLE type
CREATE TYPE IntegerTableType AS TABLE (ID INTEGER);
-- Fill a var of that type with some test data
DECLARE @MyTable IntegerTableType
INSERT @MyTable VALUES (1),(2),(3)
-- Now this is how you pass that var into dynamic statement
EXECUTE sp_executesql N'SELECT * FROM @MyTable',
N'@MyTable IntegerTableType READONLY',
@MyTable