在T-SQL中具有表参数的存储过程

时间:2013-05-31 06:52:12

标签: sql-server tsql procedure table-variable

表参数为OUTPUT

我想将一个表变量传递给一个以table参数作为输出的过程, 但不是只读!我希望能够在PROC中修改该参数。 这可能吗? 如果不可能,还有其他办法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您必须将table值参数复制到表变量或临时表

CREATE PROC DoStuff
    @tvp SomeTableType READONLY
AS
..
SELECT * INTO #LocalCopy FROM @tvp; -- take local copy
...
DoStuff -- do processing on the input
...
SELECT ... FROM LocalCopy;  --return results to client
GO

注释后,表值参数不能声明为OUTPUT。来自CREATE PROC

  

不能将表值数据类型指定为过程的OUTPUT参数。