Я использую SQL Server 2005 и имею следующий вопрос:
На table A
у меня есть триггер, который отслеживает любую вставку / обновление / удаление к нему.Отслеживаемые записи вставляются в таблицу аудита (aAudit
).Когда я запускаю обновление для A
, я вижу две строки в таблице аудита для каждого обновления, что не является тем, что я ожидаю.Вот триггер, который я определил:
ALTER TRIGGER [ATrigger] ON [dbo].[A]
FOR INSERT, UPDATE, DELETE
AS
INSERT INTO [dbo].[aAudit]
([BusinessDate], [DataTypeId], [BookId], [Version], [DelFlag], [AuditDate], [ExtStatus])
SELECT [BusinessDate], [DataTypeId], [BookId], [Version], 'N', getDate(), 0
FROM inserted
INSERT INTO [dbo].[aAudit]
([BusinessDate], [DataTypeId], [BookId], [Version], [DelFlag], [AuditDate], [ExtStatus])
SELECT [BusinessDate], [DataTypeId], [BookId], [Version], 'Y', getDate(), 0
FROM deleted
Почему приведенный выше триггер приводит к одной строке с DelFlag = 'Y'
и одной строке с DelFalg = 'N'
в таблице аудита?
Спасибоза то, что взглянул на мой вопрос.
Викрам