#sql-server #sql-server-2014
#sql-сервер #sql-server-2014
Вопрос:
Я хотел бы установить флаг в исходной таблице, когда запись вставляется в целевую таблицу.
Пример: Исходная таблица:
Name company flag
AAA XXXX 0
BBB YYYY 0
Как только в целевой таблице появятся данные
ID name company
1 AAA XXXX
Исходная таблица :
Name company flag
AAA XXXX 1
В принципе, я хочу проверить, был ли сгенерирован идентификатор в целевой таблице, если он генерируется, то сделайте флаг 1 в источнике.
Я могу сделать это в sql или в execute sql task. все в порядке.
Как я могу это сделать? любая помощь приветствуется.
Ответ №1:
Вам нужно UPDATE
:
UPDATE A
SET A.flag = 1
FROM dbo.SourceTable A
INNER JOIN dbo.TargetTable B
ON a.Name = B.Name
AND A.company = B.company
WHERE A.flag = 0;
Комментарии:
1. Вероятно, внутри триггера.. Писал аналогичный
UPDATE
запрос с аналогичнымWhere
предложением 😉 12. @Prdp Да, если это должно быть «on-line», тогда
AFTER INSERT
триггер в целевой таблице будет правильным. В противном случае достаточно просто запустить этоUPDATE
в определенное фиксированное время