>問題:>如何使用存儲過程的結果填充一個臨時表,而無需明確定義表模式?
>解決方案:>利用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
>中。臨時表的結構是根據存儲過程返回的數據類型動態創建的。 最後,AOPENROWSET
>語句確認了數據的成功插入。 這種方法避免了需要手動定義臨時表格的模式。 #MyTempTable
以上是如何在不定義臨時表結構的情況下將預存程序結果插入臨時表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!