Utilisez OPENROWSET pour insérer les résultats d'une procédure stockée dans une table temporaire
L'utilisation directe de l'instruction SELECT * INTO
pour insérer les résultats d'une procédure stockée dans une table temporaire peut échouer en raison d'erreurs de syntaxe. La solution est d'utiliser la méthode OPENROWSET
.
Tout d'abord, vous devez activer les requêtes distribuées ad hoc :
<code class="language-sql">sp_configure 'Show Advanced Options', 1 GO RECONFIGURE GO sp_configure 'Ad Hoc Distributed Queries', 1 GO RECONFIGURE GO</code>
Lorsqu'il est activé, le code suivant peut être utilisé pour insérer les résultats de la procédure stockée dans une table temporaire sans prédéfinir la structure de la table :
<code class="language-sql">CREATE PROC getBusinessLineHistory AS BEGIN SELECT * FROM sys.databases END GO SELECT * INTO #MyTempTable FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;', 'EXEC getBusinessLineHistory') SELECT * FROM #MyTempTable</code>
Dans cet exemple, la procédure stockée getBusinessLineHistory
renvoie les données de la table sys.databases
. Grâce à OPENROWSET
, les résultats de la procédure stockée peuvent être efficacement insérés dans la table temporaire #MyTempTable
.
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!