Как создать триггер для вставки и обновления, который будет автоматически передавать данные из одной (исходной) таблицы в другую (таблицы дестинации) (таблицы в разных базах данных)? Триггер должен передавать данные после каждого изменения в исходной таблице. Кто-нибудь знает как это сделать?Как создать триггер для данных вставки и обновления
ответ
попробовать что-то вроде этого:
USE DB1;
GO
CREATE TRIGGER dbo.table1__AIU
ON dbo.table1
AFTER INSERT, UPDATE
AS BEGIN
SET NOCOUNT ON;
DECLARE @operation char(1) = -- [I]nsert, [U]pdate, u[N]known
CASE
WHEN EXISTS(SELECT * FROM inserted) THEN
CASE WHEN EXISTS(SELECT * FROM deleted) THEN 'U' ELSE 'I' END
ELSE 'N'
END;
IF @operation = 'N'
RETURN;
IF @operation = 'I'
INSERT INTO DB2.dbo.Table2(id, b)
SELECT inserted.id, inserted.b
FROM inserted;
ELSE
UPDATE t2
SET b = inserted.b
FROM DB2.dbo.Table2 t2
INNER JOIN inserted i ON t2.id = inserted.id;
END;
GO
Виртуальные таблицы «вставлены» и «удалены» могут содержать несколько строк для пакетных вставок/обновлений/удалений. То, что вы написали, неверно, потому что вы предполагаете, что эти таблицы содержат только одну строку. Так что это будет некорректно для пакетных вставок/обновлений/удалений. Операторы вставки и обновления в конце триггера неверны. Вы не можете написать их таким образом. Оператор insert не может просто ссылаться на insert.XXX в предложении VALUES, оператор обновления не может ссылаться на вставленный .XXX без наличия вставленной таблицы в предложении FROM. –
@TT, да, вы правы, это спешит (я изменил ответ, спасибо –
Выглядит правильно. –
- 1. Как создать триггер уровня базы данных для вставки/обновления
- 2. Создать триггер для вставки
- 3. Как запустить триггер для вставки и обновления?
- 4. SQLite - создать триггер для вставки или обновления
- 5. Триггер для вставки, обновления, удаления
- 6. Создать триггер для обновления
- 7. создать триггер для обновления, удаления или вставки в FoxPro таблице
- 8. как написать триггер для вставки, обновления
- 9. PLSQL триггер для обновления записи после вставки
- 10. Создать триггер вставки для SQLAgentMail
- 11. Как создать триггер обновления?
- 12. Как написать триггер для вставки и обновления в MySql
- 13. Как создать триггер обновления
- 14. Как создать триггер для обновления таблицы из других данных таблицы
- 15. Создать триггер после вставки
- 16. Создать триггер предотвращения вставки
- 17. Триггер, необходимый для вставки данных
- 18. как написать триггер для вставки и обновления уникального поля varchar .....?
- 19. Триггер SQL Server для вставки или обновления
- 20. Как создать триггер обновления для таблицы
- 21. как создать триггер в MySQL для данных вставки в таблицу
- 22. MySQL триггер после обновления вставки
- 23. Как создать триггер обновления для этой ситуации
- 24. SQL создает триггер для вставки и таблицу обновления
- 25. Как создать триггер mysql для обновления столбца
- 26. Создать триггер после обновлений вставки
- 27. Триггер для таблицы вставки
- 28. Невозможно создать триггер для вставки значения concat
- 29. Создать триггер вставки PL/SQL
- 30. После вставки триггер обновления не работает
А что делать на удаление? И как вы будете хранить изменения? Если вам нужна точная копия, лучше использовать представление. Слишком широкая, пожалуйста, уточните. – gofr1