Maison >base de données >tutoriel mysql >Comment insérer les résultats de la procédure stockée dans une table temporaire dans SQL?
Insertion de la procédure stockée Résultats dans une table temporaire dans SQL
La clause SQL INTO
insère facilement les données de table dans des tables temporaires. Cependant, l'insertion directe des résultats d'une procédure stockée utilisant EXEC
conduit souvent à des erreurs de syntaxe. La solution? Utilisez la fonction OPENROWSET
.
Voici comment réaliser ceci:
<code class="language-sql">CREATE PROC getBusinessLineHistory AS BEGIN SELECT * FROM sys.databases END GO -- Enable Ad Hoc Distributed Queries (required for OPENROWSET) sp_configure 'Show Advanced Options', 1; GO RECONFIGURE; GO sp_configure 'Ad Hoc Distributed Queries', 1; GO RECONFIGURE; GO SELECT * INTO #MyTempTable FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;', 'EXEC getBusinessLineHistory'); SELECT * FROM #MyTempTable;</code>
OPENROWSET
fournit une solution de contournement, permettant l'accès aux données de procédure stockées sans définir explicitement les colonnes de la table temporaire. Cela simplifie le stockage et le traitement ou l'analyse par la suite de la sortie de procédure stockée. Notez que l'activation des "requêtes distribuées ad hoc" est une condition préalable à ce que cette méthode fonctionne correctement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!