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?

Comment insérer les résultats de la procédure stockée dans une table temporaire dans SQL?

DDD
DDDoriginal
2025-01-25 02:27:09449parcourir

How to Insert Stored Procedure Results into a Temporary Table in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn