Когда я пытаюсь удалить данные с помощью триггера, они удаляют данные для полной таблицы, а не только для первого пункта.
Create TRIGGER trgAfterInsertFDs ON [dbo].MyTable
FOR INSERT,Delete
AS
declare @id nvarchar(max)
declare @Status nvarchar(100);
select @id=i.ID from inserted i;
select @Status=i.[Status] from inserted i;
Delete from MyTable where ID=@id and [Status]='Closed'
GO
Я пробовал и другой путь. Для выгрузки автоматически сгенерированного идентификатора из моей таблицы в другую таблицу и записи еще одного триггера для удаления данных из моей таблицы.
Create TRIGGER trgAfterInsert ON [dbo].MyTable
FOR INSERT,Delete
AS
declare @id nvarchar(max)
declare @Status nvarchar(100);
select @id=i.ID from inserted i;
select @Status=i.[Status] from inserted i;
Delete from MyTable where ID=@id and [Status]='Closed'
Insert into ClosedID
Select ID,[Status] from [dbo].MyTable where ID=@id and Status='Closed'
GO
таблица ClosedID:
Create table ClosedID
(ID int,Status nvarchar(max))
Create TRIGGER trgAfter ON ClosedID
FOR INSERT
AS
declare @ID nvarchar(max)
declare @Status nvarchar(100);
select @id=i.ID from inserted i;
select @Status=i.Status from inserted i;
delete from [dbo].MyTable where id in (Select ID from ClosedID)
--Delete from ClosedID
GO