OPENROWSET を使用してストアド プロシージャの結果を一時テーブルに挿入します
SELECT * INTO
ステートメントを直接使用してストアド プロシージャの結果を一時テーブルに挿入すると、構文エラーが原因で失敗する可能性があります。 解決策は、OPENROWSET
メソッドを使用することです。
まず、アドホック分散クエリを有効にする必要があります:
<code class="language-sql">sp_configure 'Show Advanced Options', 1 GO RECONFIGURE GO sp_configure 'Ad Hoc Distributed Queries', 1 GO RECONFIGURE GO</code>
有効にすると、次のコードを使用して、テーブル構造を事前定義せずにストアド プロシージャの結果を一時テーブルに挿入できます。
<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>
この例では、ストアド プロシージャ getBusinessLineHistory
は sys.databases
テーブルのデータを返します。 OPENROWSET
を通じて、ストアド プロシージャの結果を一時テーブル #MyTempTable
に効率的に挿入できます。
以上がOPENROWSET を使用してストアド プロシージャの結果を一時テーブルに挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。