如何将SP结果放入SQL Server的临时表中

How can I put SP results into temp table in SQL server

本问题已经有最佳答案,请猛点这里访问。

我尝试过:

1
2
select * into #temp124
exec usp_GetTagDetails @UserId=1,@IsActiveOnly=1,@IsParentPathRequired=1

但这不起作用。有人能帮我把sp结果放入临时表吗?


首先启用几个选项:

1
2
3
4
5
6
7
8
sp_configure 'Show Advanced Options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO

然后可以使用openrowset:

1
2
3
SELECT * INTO #Temp124
FROM OPENROWSET('SQLNCLI', 'Server=(local)\InstanceName;Trusted_Connection=yes;',
     'EXEC usp_GetTagDetails @UserId=1,@IsActiveOnly=1,@IsParentPathRequired=1')

另一种方法是创建表来手动存储来自sp的数据,但您应该确切知道该sp返回的数据。

1
2
3
4
5
6
7
8
CREATE TABLE #temp124 (
    Col1 int,
    Col2 nvarchar=(max),
    ...etc
)

INSERT INTO #temp124
EXEC usp_GetTagDetails @UserId=1,@IsActiveOnly=1,@IsParentPathRequired=1