ホームページ >データベース >mysql チュートリアル >SQL の一時テーブルにストアド プロシージャの結果を挿入するにはどうすればよいですか?
ストアド プロシージャの結果を SQL の一時テーブルに挿入する
SQL の INTO
句を使用すると、テーブル データを一時テーブルに簡単に挿入できます。 ただし、EXEC
を使用してストアド プロシージャから結果を直接挿入すると、構文エラーが発生することがよくあります。 解決策は? OPENROWSET
関数を使用します。
これを達成する方法は次のとおりです:
<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
は、一時テーブルの列を明示的に定義せずにストアド プロシージャ データにアクセスできるようにする回避策を提供します。これにより、ストアド プロシージャの出力の保存とその後の処理または分析が簡素化されます。 このメソッドが正しく機能するには、「アドホック分散クエリ」を有効にすることが前提条件であることに注意してください。
以上がSQL の一時テーブルにストアド プロシージャの結果を挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。