首頁 >資料庫 >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 提供了一種解決方法,無需顯式定義臨時表的列即可訪問存儲過程數據。這簡化了存儲過程輸出以及隨後的處理或分析。 請注意,啟用“Ad Hoc Distributed Queries”是此方法正常運行的先決條件。

以上是如何在SQL中將預存程序結果插入到臨時表中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn