ホームページ >データベース >mysql チュートリアル >SQL の一時テーブルにストアド プロシージャの結果を挿入するにはどうすればよいですか?

SQL の一時テーブルにストアド プロシージャの結果を挿入するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-25 02:27:09451ブラウズ

How to Insert Stored Procedure Results into a Temporary Table in 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。