首页 > 解决方案 > 插入存储过程加静态值

问题描述

我正在尝试将多个存储过程的结果插入到临时表中。但是,我还想在每个实例中添加另一个静态值,该值不属于这些结果的一部分,但我不确定执行此操作的语法。

这是我目前所处的位置:

CREATE TABLE #table (
STATIC              INT, --STATIC NUMBER
SP1                 INT, --STORED PROCEDURE COL 1
SP2                 INT, --STORED PROCEDURE COL 2
SP3                 INT, --STORED PROCEDURE COL 3
);

INSERT INTO #table values('1'), EXEC stored_procedure 'param_1', 'param_2';
INSERT INTO #table values('2'), EXEC stored_procedure 'param_3', 'param_4';

任何建议都会很棒!

标签: sqlsql-serverstored-proceduressql-insert

解决方案


你不能完全按照你想要的方式去做,但你可以INSERT,,,,。UPDATEINSERTUPDATE

CREATE TABLE #table (
STATIC              INT, --STATIC NUMBER
SP1                 INT, --STORED PROCEDURE COL 1
SP2                 INT, --STORED PROCEDURE COL 2
SP3                 INT, --STORED PROCEDURE COL 3
);

INSERT INTO #table (SP1,SP2,SP3)
EXEC stored_procedure 'param_1', 'param_2';
UPDATE #table
SET STATIC = 1
WHERE STATIC IS NULL;

INSERT INTO #table (SP1,SP2,SP3)
EXEC stored_procedure 'param_3', 'param_4';
UPDATE #table
SET STATIC = 2
WHERE STATIC IS NULL;

假设存储过程按该顺序返回 3 列。


推荐阅读