MS SQL каскадное удаление из таблицы при изменении значения записи

Есть следующие таблицы:

[dbo].[DocNumbers]
(
   [Id] int primary key identity(1,1),
   [IsDeleted] bit
)
[dbo].[DocflowDocuments]
(
   [Id] nvarchar(25),
   [DocNumberId] int,
)

Что мне нужно сделать, чтобы при изменении статуса [DocNumbers].[IsDeleted] = 1 автоматически удалялась запись из таблицы [DocflowDocuments]? Я мог бы добавить foreign key на update, но к сожалению не знаю как отслеживать изменение [IsDeleted] = 1


Ответы (1 шт):

Автор решения: Konst
CREATE TRIGGER TR_D_DocNumbers
ON dbo.[DocNumbers]
FOR UPDATE
AS
    DELETE F FROM dbo.DocflowDocuments F INNER JOIN  inserted D ON D.Id = F.DocNumberId And D.IsDeleted = 1;
GO
→ Ссылка