Insérer dans une table à partir d'une procédure stockée avec différentes versions

Il existe une procédure stockée sp et une variable de table @tbl

 Insert into @tbl Exec sp 

Ci-dessus fonctionne bien au départ.

Nous avons modifié la sortie de la procédure stockée et ajouté des colonnes de sortie supplémentaires. L'instruction d'insertion ci-dessus échoue avec la 2ème version de la procédure stockée.

Le SQL ci-dessus doit fonctionner avec la version 1 de sp et la version 2 de sp

Ce qui peut être fait?

SQL Server ne fournit pas l'option permettant de spécifier les noms de colonne lors de l'insertion de la sortie sp

La seule façon de le faire consiste à utiliser le jeu EXECUTE WITH RESULT SETS pour déterminer les colonnes exactes à renvoyer de la procédure stockée. Cela vous donnera l'option de spécifier les noms de colonnes à insert dans la variable de table à partir de la sortie de la procédure stockée.

 Insert into @tbl(col1, col2, col3) EXECUTE sp WITH RESULT SETS ( (col1 INT, col2 INT, col3 nvarchar(50)) ) 

Pour plus d'informations, voir ici .