Разумнее ли использовать функцию между первой и следующей вставками на основе выбора? - PullRequest
1 голос
/ 29 ноября 2009
 PROCEDURE add_values 
 AS BEGIN
    INSERT INTO TableA 
       SELECT id, name 
       FROM TableC ("This selection will return multiple records")

Пока он вставляется в таблицу A, я бы хотел вставить в другую таблицу (TableB) для той конкретной записи, которая была вставлена ​​в таблицу A

Примечание. Столбцы в TableA и TableB отличаются, целесообразно вызывать функцию перед вставкой в ​​TableB, так как я хотел бы выполнить определенные операции получения и установки на основе идентификатора, вставленного в tableA.

Ответы [ 2 ]

1 голос
/ 29 ноября 2009

Если вы хотите вставить набор строк в две таблицы, вам нужно сначала сохранить его во временной таблице, а затем выполнить оттуда два оператора INSERT

INSERT INTO #TempTable
   SELECT id, name 
   FROM TableC ("This selection will return multiple records")

INSERT INTO TableA
   SELECT (fieldlist) FROM #TempTable

INSERT INTO TableB
   SELECT (fieldlist) FROM #TempTable
0 голосов
/ 29 ноября 2009

Помимо ответа Marc_S, еще один способ -

Сначала вставьте необходимые записи в таблицу A из таблицы C. Затем перекачайте необходимые записи из таблицы A в таблицу B

Хотя многие люди в вашем вопросе предложили много способов, которые вы задали всего 3 часа назад Как вставить записи, основанные на предыдущей вставке

...