2017-06-30 13 views
0

SQL Server 2005データベースで作業していますが、ストアドプロシージャのストアドプロシージャから別のストアドプロシージャにテーブル変数を渡そうとしています。以下はテーブルの構造と私の試みです。ストアドプロシージャから別のストアドプロシージャにテーブル変数を渡します。

@MyTable

EmployeeID FirstName LastName 
1    Dummy  Last 
2    Some   Name 

私はXMLにテーブルを変換し、新しいSPへのパラメータとしてXMLを渡すことを試みました。

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パラメータを使用したいと思います。

答えて

0

Erland Sommarskogはあなたの友人です。下のリンクはオプションを示す表です。 SQL Server 2005の場合、TVFはオプションではありません。データを共有するには、XMLまたは一時表を使用する必要があります。私はあなたがこれら2つがあなたにとって最も望ましい選択肢ではないとあなたが言うことを知っていますが、2005年には彼らが最も適切だと思います。

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

関連する問題