Вставить связанные данные в связанные таблицы сразу - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь написать SQL. Я хочу добавить данные в 2 связанные таблицы. Данные, которые будут записаны в эти 2 таблицы, взяты из 2 разных таблиц, и они также связаны между собой. Есть 3 строки в первой таблице и 9 строк во второй таблице. Мне нужно перенести их в 2 другие связанные таблицы. Я использую C # для программирования

Основная таблица источников (S1):

ID    TYPE   STATUS
1015    12        2
1016    12       10
1021    12        4

Дочерняя исходная таблица (S2), связанная по UID:

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

Таблица назначения детей (D2), связанная с REFID:

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;
...