2017-06-30 1 views
0

Je travaille sur une base de données SQL Server 2005 et j'essaie de passer une variable de table d'une procédure stockée à une autre. Voici la structure de la table et ma tentative.Passer une variable de table d'une procédure stockée à une autre

@MyTable

EmployeeID FirstName LastName 
1    Dummy  Last 
2    Some   Name 

J'essayé de convertir la table en XML et en passant le XML comme paramètre à la nouvelle SP.

SELECT * FROM @MyTable FOR XML AUTO 

Résultat

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

Mais reconvertir de cette XML à une table est devenu trop compliqué pour mon niveau de connaissances SQL. Suis-je sur le bon chemin? Y a-t-il un moyen facile?

Remarque - J'ai vu quelques messages qui suggèrent d'utiliser les tables #temp et je ne préférerais pas utiliser cette solution. Je voudrais utiliser le paramètre @MyTable.

Répondre

0

Erland Sommarskog est votre ami ici. Le lien ci-dessous fournit un tableau montrant les options. Pour SQL Server 2005, TVF ne sont pas une option. Vous devrez probablement utiliser XML ou une table temporaire pour partager les données. Je sais que vous dites que ces deux options sont les moins souhaitables pour vous, mais pour 2005, je pense qu'elles sont les plus appropriées.

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