CREATE TRIGGER [dbo].[C1_Deletions] ON [dbo].[C1] INSTEAD OF DELETE AS
SET NOCOUNT ON
IF EXISTS ( SELECT 'True' FROM deleted JOIN C1 ON deleted.ACCOUNTNO = C1.ACCOUNTNO )
BEGIN
INSERT INTO [GDeletions].[dbo].[C1] SELECT * FROM deleted
DELETE C1 FROM C1 INNER JOIN DELETED ON C1.ACCOUNTNO = DELETED.ACCOUNTNO
END
Так что это триггер, который я пытаюсь использовать, он хорошо работает, когда я удаляю по accountno, но когда мне нужно удалить по recid (другой столбец), я не могу.
Если я изменяю INSTEAD OF на AFTER, я получаю ошибки о ntext, столбцы изображений не допускаются. Есть ли способ обойти эту проблему? Я не могу быть тем, кто определяет строку удаления, сама программа делает это, мне просто нужен триггер, чтобы получить удаляемые данные.
Большая проблема, с которой я столкнулся, - это другая таблица, в которой хранится история, она хранит ее с учетной записью, соответствующей таблице c1, но есть также recid, который уникален для каждой записи. Если я иду, чтобы удалить запись C1, она удаляет все из истории, используя accountno, но если я удаляю одну запись истории, то она удаляется по recid.