将表变量从一个存储过程传递到另一个存储过程

时间:2017-06-30 03:29:25

标签: stored-procedures sql-server-2005

我正在研究SQL Server 2005数据库,我正在尝试将表变量从一个存储过程传递到另一个存储过程。下面是表格的结构和我的尝试。

@MyTable

EmployeeID    FirstName    LastName
1             Dummy        Last
2             Some         Name

我尝试将表转换为XML并将XML作为参数传递给新SP。

SELECT * FROM @MyTable FOR XML AUTO 

结果

<_x0040_MyTable EmployeeID="1" FirstName="Dummy" LastName="Last" />
<_x0040_MyTable EmployeeID="2" FirstName="Some" LastName="Name" />

但是,从这个XML转换回表格对于我的SQL知识水平来说变得太复杂了。我在正确的道路上吗?有一个简单的方法吗?

注意 - 我看过一些建议使用#temp表的帖子,我不想使用该解决方案。我想使用@MyTable参数。

1 个答案:

答案 0 :(得分:0)

Erland Sommarskog是你的朋友。以下链接提供了一个显示选项的表格。对于SQL Server 2005,TVF不是一个选项。您可能需要使用XML或临时表来共享数据。我知道你说这两个对你来说是最不可取的选择,但对于2005年,我认为它们是最合适的。

http://www.sommarskog.se/share_data.html