Exec procédure stockée dans la dynamique de la table temporaire

À ma connaissance; ce que je veux faire n'est pas possible en sql, mais il vaut la peine de demander de vous les gars.

Permet de dire que j'ai une procédure stockée abc qui renvoie les colonnes Id et la Valeur. Cette procédure stockée est principalement utilisé par d'autres ministères pour des raisons fonctionnelles et je n'utilise que chaque maintenant et encore pour les vérifications de données.

Afin de l'utiliser dans le cadre de ma procédure stockée:

DECLARE @tABC TABLE
(
   ID      INT,
   Value   DECIMAL(12,2)
)

INSERT INTO @tABC
   EXEC OtherDb.DataProd.abc

Oky donc, cela fonctionne parfaitement pour le moment, mais que s'ils modifient la structure de leur procédure stockée?

De l'ajout ou de la suppression d'une colonne à partir de leur procédure stockée de briser mon code, donc est-il un moyen de rendre mon code plus souple.

Ma dernière tentative désespérée va quelque chose comme ceci:

WITH tempTable AS
(
    EXEC OtherDb.DataProd.abc
)
SELECT ID, Value FROM tempTable

Qui, évidemment, a échoué lamentablement.

C'est pourquoi vous devez utiliser la table de fonctions ou de variables de table à la place de procédures stockées pour les tables de retour. De toute façon, la fonction OPENROWSET pourrait être une solution pour vous
Votre commentaire au sujet de l'Udf effectivement résolu mon problème. Je ne peux pas croire que je n'ai pas vu ça avant.
double possible de Insérer les résultats d'une Procédure Stockée dans une Table Temporaire
N'importe comment la dynamique de votre code si ils enlèvent les colonnes que vous utilisez votre code est cassé. N'ajoutez pas de surcharge inutile pour votre processus en raison de la mauvaise changement de contrôle. J'ai fait beaucoup de code dynamique, mais jamais pour la raison de la mauvaise changement de contrôle

OriginalL'auteur JAT | 2013-11-29