通过select语句插入表,该语句返回更多列

时间:2016-10-20 15:46:44

标签: sql sql-server

我想知道是否有办法通过select语句将值插入表中,该语句返回INSERT子句值中不存在的其他几列但我需要这些附加值才能在我的OUTPUT子句中使用它。在这种情况下,我不确定OUTPUT子句的工作原理。

例如,这是我的要求

INSERT INTO TABLE testA(a,b,c)
OUTPUT INSERTED.a, x INTO tempTable (a,x)
SELECT (x,a,b,c) FROM testB

示例数据ex:

testB有一行,列值为a = A b = B c = C且x = 1 现在我希望testA插入A,B,C列 tempTable将A,1插入其中。

我可以获得一些帮助吗?

非常感谢。

由于

1 个答案:

答案 0 :(得分:0)

您不能在OUTPUT列表中包含目标表中不存在的列。

INSERTED表将具有新插入目标表的任何值

如果x是常量,则对Output列表

中的值进行硬编码
INSERT INTO TABLE testA
            (a,b,c)
OUTPUT      INSERTED.a,
            1
INTO tempTable (a, x)
SELECT a,b,c
FROM   testB