Insérer Dans la table temporaire à partir d'une procédure stockée qui retourne plusieurs jeux de résultats
Considérer le sql suivant
Une procédure stockée appelée myProc qui renvoie deux ensembles de résultats. Jeu de résultats 1 retourne colonne1, colonne2. Résultat de l'ensemble 2 renvoie la colonne 3 colonne 4 colonne 5.
Le sql suivant échoue depuis le temp de table n'a défini 2 colonnes int.
Create Table #temp1(
Column1 int,
Column2 int)
insert into #temp1 exec myProc
Ma question est est il possible de simplement insérer le premier ensemble de résultats en #temp1?
stackoverflow.com/questions/209383/...
double possible de Comment SÉLECTIONNER * EN [temp table] à PARTIR de [Procédure Stockée]
double possible de Comment SÉLECTIONNER * EN [temp table] à PARTIR de [Procédure Stockée]
OriginalL'auteur user263097 | 2011-06-17
Vous devez vous connecter pour publier un commentaire.
Vieux post, mais j'ai connu le même problème et même si les réponses mentionnées ci-dessus sont un peu liés, l'OP question est à propos de SP qui renvoie à de multiples ensembles. La seule solution que j'ai pu trouver, en dehors de la réécriture de la SP de le découper en petits SPs, était d'écrire un
SQL CLR
procédure qui exécute le PS, et ne revient que le nécessaire. La procédure est de l'indice de résultat requis de définir, exécute unSqlCommand
pour exécuter le intialT-SQL
PS, puis parcourt unSqlDataReader
résultats jusqu'à ce qu'il trouve les résultats souhaités et renvoie les enregistrements correspondants. Le code suivant est une partie de laSQL CLR
procédure:.......
SqlDataReader
et de la création de laSqlMetaData
pour laSqlDataRecord
qui peut conduire à des problèmes en fonction de quels types de données sont retournées, c'est à peu près la seule façon d'obtenir un ensemble de résultats spécifique à partir d'une Procédure Stockée.OriginalL'auteur dan radu
Il y a une autre façon
Ce insérerez le premier jeu de résultats dans #temp
OriginalL'auteur jakubk