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