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

Jhj*_*mth 5 sql sql-server

我想将存储过程的值插入到临时表中而不预先定义临时表的列。

Insert Into #Temp1 Exec dbo.sp_GetAllData @Name = 'Jason'.
Run Code Online (Sandbox Code Playgroud)

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

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

Jhj*_*mth 2

如果不定义临时表架构和写入服务器名称,我找不到可能的解决方案。因此,我更改了代码和查询以仅使用已知模式进行处理。代码示例如下

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

    SELECT * FROM #TestTable;
Run Code Online (Sandbox Code Playgroud)

如链接https://blog.sqlauthority.com/2013/05/27/sql-server-how-to-insert-data-from-stored-procedure-to-table-2- Different-methods/中提供的