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

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

Patricia Arquette
リリース: 2025-01-25 02:32:13
オリジナル
361 人が閲覧しました

How to Insert Stored Procedure Results into a Temporary Table Without Defining its Structure?

ストアドプロシージャの挿入は、事前定義された構造のない一時テーブルに結果をもたらします

問題:テーブルスキーマを事前に明示的に定義せずに、ストアドプロシージャの結果に一時テーブルにどのように入力できますか?

解決策:関数を活用します。この関数はリモートクエリを実行し、結果を一時テーブルに直接挿入し、クエリの出力からテーブル構造を動的に推測します。 OPENROWSET例は次のとおりです

このコードは、最初にサンプルストアドプロシージャ(

)を定義します。 重要なことに、
<code class="language-sql">-- Sample Stored Procedure
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

-- Insert results into temporary table using OPENROWSET
SELECT * INTO #MyTempTable FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;',
     'EXEC getBusinessLineHistory')

-- Verify the data
SELECT * FROM #MyTempTable</code>
ログイン後にコピー
を使用して「Ad Hoc分散クエリ」を有効にします。これは、

getBusinessLineHistoryを使用するための前提条件です sp_configureOPENROWSETストアドプロシージャをリモートで実行し、返されたデータが自動的に

に挿入されます。一時テーブルの構造は、ストアドプロシージャによって返されるデータ型に基づいて動的に作成されます。 最後に、

ステートメントは、データの挿入が成功したことを確認します。 このアプローチは、一時テーブルのスキーマを手動で定義する必要性を回避します。

以上が構造を定義せずにストアド プロシージャの結果を一時テーブルに挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート