将存储过程结果插入临时表

gur*_*dio 5 sql sql-server stored-procedures temp-tables

我有一个返回此结果的存储过程:

在此处输入图片说明

我调用存储过程的方式是:

Exec uspGetStandardUsingRoleandPhase '1908003'
Run Code Online (Sandbox Code Playgroud)

我想将这些结果存储到一个临时表中,所以我这样使用insert into

IF OBJECT_ID(N'tempdb.dbo.#tmp', N'U') IS NOT NULL
    DROP TABLE #tmp

CREATE TABLE #tmp
(
    startDate DATE,
    endDate DATE,
    strPhase NVARCHAR(50),
    strBadgeNumber NVARCHAR(30)
)

INSERT INTO #tmp (startDate, endDate, strPhase, strBadgeNumber)
    EXEC uspGetStandardUsingRoleandPhase '1908003'
Run Code Online (Sandbox Code Playgroud)

但我收到这样的错误:

INSERT EXEC 失败,因为存储过程更改了目标表的架构。

squ*_*man 8

很难说没有看到存储过程的代码,但我的猜测是该过程还创建了一个名为 #tmp 的临时表。尝试使用不同的名称创建一个临时表并在其中运行 INSERT EXEC,或者将代码发布到过程中以便我们可以看到它。