sql – 如何在不声明临时表列的情况下将存储过程的结果插入到临时表中

我想在不预定义临时表的列的情况下将存储过程的值插入到临时表中.

Insert Into #Temp1 Exec dbo.sp_GetAllData @Name = 'Jason'.

我怎样才能做到这一点 ?我看到了如下选项,但我可以不提及服务器名称吗?

SELECT * INTO #TestTableT FROM OPENROWSET('SQLNCLI', 'Server=localhost;Trusted_Connection=yes;',
'EXEC tempdb.dbo.GetDBNames')
-- Select Table
SELECT *
FROM #TestTableT;

最佳答案 没有定义临时表模式和编写服务器名称,我找不到可能的解决方案.因此,我将代码和查询更改为仅使用已知架构进行处理.代码示例如下

    CREATE TABLE #TestTable ([name] NVARCHAR(256), [database_ID] INT);
    INSERT INTO #TestTable
    EXEC GetDBNames

    SELECT * FROM #TestTable;

如链接https://blog.sqlauthority.com/2013/05/27/sql-server-how-to-insert-data-from-stored-procedure-to-table-2-different-methods/中所述

点赞