SQL Server : Insertion du résultat d'une procédure stockée ou de code dynamique
Vous savez certainement qu'il est possible de réaliser une insertion dans une table à partir d'une requête SQL :
INSERT MaTable (ChampA, ChampB)
SELECT ChampC, ChampD FROM UneAutreTable
Il est aussi possible de réaliser une insertion à partir d'une procédure stockée :
INSERT MaTable (ChampA, ChampB)
EXEC MaProcedure
Dans ce cas il faut que la table "MaTable" ait la structure correcte pour accueillir les données générées pour la procédure stockée.
Par extension il est possible de récupérer les données générées par tout SQL dynamique :
INSERT MaTable (ChampA, ChampB)
EXEC ('SELECT ChampC, ChampD FROM UneAutreTable')
Ou plus compliqué (tiré d'un précédent post) :
INSERT INTO MaTable
EXEC ('DBCC SQLPERF(WAITSTATS)')
Inutile du coup de passer par une table temporaire pour du SQL dynamique et cela rend possible la récupération des données renvoyées par des commandes systèmes.
Bon tests…
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :