首頁 >資料庫 >mysql教程 >如何使用 OPENROWSET 將預存程序結果插入暫存表?

如何使用 OPENROWSET 將預存程序結果插入暫存表?

DDD
DDD原創
2025-01-25 02:46:09188瀏覽

How to Insert Stored Procedure Results into a Temporary Table Using OPENROWSET?

利用OPENROWSET將存儲過程結果插入臨時表

直接使用SELECT * INTO語句將存儲過程的結果插入臨時表可能會因為語法錯誤而失敗。 解決方法是使用OPENROWSET方法。

首先,需要啟用Ad Hoc Distributed Queries:

<code class="language-sql">sp_configure 'Show Advanced Options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO</code>

啟用後,可以使用以下代碼將存儲過程的結果插入臨時表,無需預先定義表結構:

<code class="language-sql">CREATE PROC getBusinessLineHistory
AS
BEGIN
    SELECT * FROM sys.databases
END
GO

SELECT * INTO #MyTempTable FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;',
     'EXEC getBusinessLineHistory')

SELECT * FROM #MyTempTable</code>

此示例中,存儲過程getBusinessLineHistory返回sys.databases表的數據。 通過OPENROWSET,可以將存儲過程的結果有效地插入到臨時表#MyTempTable中。

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

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