利用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中文網其他相關文章!