SQL OUTPUT INSERTED用于upo三个表

时间:2017-01-27 04:40:06

标签: sql sql-server sql-server-2008

我有3个表,表A,B,C

表B具有表A的外键 表C具有表B的外键密钥

现在我计划在表A中插入多个记录,然后我需要捕获插入的主键值以引用表B插入然后我需要捕获表B插入的表C引用的标识值插入等..

我试过了

MERGE 
INTO A
USING
(
 SLECT A.*,B.*,C.*
 FROM A INNER JOIN B ON A.ID =B.ID
 INNER JOIN C ON C.ID =B.ID
) AS D
ON 1 = 0
WHEN NOT MATCHED THEN
INSERT
(
 VALUE1,VALUE2,VALUE3
)
VALUES
(
 A.VALUE1,A.VALUE2,A.VALUE3
)

OUTPUT INSERTED A.VALUE1,
B.VALUE2,B.VALUE3
INTO B
(
VALUE1,VALUE2,VALUE3
)

OUTPUT INSERTED B.VALUE1,
C.VALUE2,C.VALUE3
INTO C
(
VALUE1,VALUE2,VALUE3
)

这里我试图插入相同的表值,但是这里的问题是表A,B,C具有相同的列名,所以我无法选择合并中using语句中的所有表。

有没有办法根据我的要求插入?

0 个答案:

没有答案