В SQL Server можно сделать INSERT INTO
таблицу с помощью SELECT
:
INSERT INTO tabla (col, col2, col3)
SELECT col, col2, col3 FROM otra_tabla WHERE sql = 'ok'
Это также возможно для UPDATE
? У меня есть временная таблица, содержащая значения, и я хотел бы обновить другую таблицу, используя эти значения. Может быть, что-то вроде:
UPDATE tabla SET col1, col2
SELECT col1, col2 FROM otra_tabla WHERE sql = 'ok'
WHERE tabla.id = otra_tabla.id
Это можно сделать следующим образом. Обратите внимание, что запрос сопоставляет две таблицы по ключевому полю, которое есть у них обоих.
В случае, если в целевой таблице нет этих пустых полей и могут быть данные, которые уже существуют из источника, удобно использовать запрос, который проверяет перед выполнением
UPDATE
, так как процессUPDATE
сначала выполняет,DELETE
а затемINSERT
Вы можете сделать что-то вроде следующего: