問題:テーブルスキーマを事前に明示的に定義せずに、ストアドプロシージャの結果に一時テーブルにどのように入力できますか?
解決策:関数を活用します。この関数はリモートクエリを実行し、結果を一時テーブルに直接挿入し、クエリの出力からテーブル構造を動的に推測します。
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>
。getBusinessLineHistory
を使用するための前提条件です
sp_configure
OPENROWSET
ストアドプロシージャをリモートで実行し、返されたデータが自動的に
ステートメントは、データの挿入が成功したことを確認します。 このアプローチは、一時テーブルのスキーマを手動で定義する必要性を回避します。
以上が構造を定義せずにストアド プロシージャの結果を一時テーブルに挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。