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

Posted

技术标签:

【中文标题】T-SQL 中具有表参数的存储过程【英文标题】:Stored Procedure that has table argument in T-SQL 【发布时间】:2013-05-31 06:52:11 【问题描述】:

表参数作为输出

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

谢谢!

【问题讨论】:

【参考方案1】:

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

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 参数。

【讨论】:

@BlackViking:已更新。您的表参数不能是 OUTPUT。

以上是关于T-SQL 中具有表参数的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

T-SQL - 如何编写条件连接

如何从 T-SQL 存储过程返回表

SQL server T-SQL存储过程

T-SQL 带参数存储过程

T-SQL存储过程

SqlServerSqlServer编程语言T-SQL的存储过程