将表变量传递给动态SQL 2008

时间:2010-08-10 08:51:22

标签: tsql sql-server-2008

我需要运行一个动态sql,它使用在父级范围内创建的表变量。如何在SQL2008中将表变量传递给动态sql?

1 个答案:

答案 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