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