我正在尝试编写SQL。我想将数据添加到2个链接表中。将要写入这2个表中的数据取自2个不同的表,并且这些数据也已链接。第一个表中有3行,第二个表中有9行。我需要将它们转移到其他2个链接表中。我正在使用C#进行编程
主要来源表(S1):
ID TYPE STATUS
1015 12 2
1016 12 10
1021 12 4
通过UID链接的子源表(S2):
ID UID PRODUCTREF AMOUNT
1090 1015 1268 2
1091 1015 1269 5
1093 1016 1269 2
1094 1016 1270 2
1096 1016 1271 5
1097 1015 268 4
1098 1016 269 10
1099 1021 1268 12
1100 1021 269 3
像这样运行SQL之后的目标表示例:
主目标表(D1):
ID STATUS
1 2
2 10
3 4
通过REFID链接的子目标表(D2):
ID REFID PRODUCTREF AMOUNT
1 1 1268 2
2 1 1269 5
3 2 1269 2
4 2 1270 2
5 2 1271 5
6 1 268 4
7 2 269 10
8 3 1268 12
9 3 269 3
有可能一次吗?如果不可能一次怎么办?
谢谢...
编辑:
我尝试了交易查询,但失败了
BEGIN TRANSACTION;
DECLARE @DataID int;
INSERT INTO D1 STATUS SELECT STATUS FROM S1 AS S1;
SELECT @DataID = SCOPE IDENTITY();
INSERT INTO D2 (REFID, PRODUCTREF, AMOUNT) SELECT @DataID, PRODUCTREF, AMOUNT FROM S2
WHERE UID = S1.ID
COMMIT;