Триггер SQL Server для УДАЛЕНИЯ одной записи из нескольких таблиц - PullRequest
4 голосов
/ 09 августа 2011

Я знаю, что это можно сделать с помощью внешних ключей, но я не могу добавить их, или что-то странное происходит, когда я вставляю новые записи. В этой базе данных много хранимых процедур, и я не знаю, что они делают, поскольку ничего не знаю о хранимых процедурах. Я надеялся, что кто-нибудь может помочь мне определить триггер, который удалит определенный ProductID, когда я удаляю его из таблицы Product. Он также находится в таблицах под названием CompanyLink, TargetLink и CategoryLink.

На данный момент, когда я удаляю ProductID из таблицы Product, я должен вручную удалить его из трех других таблиц, в которые он был вставлен.

1 Ответ

8 голосов
/ 09 августа 2011

Вы можете сделать это с помощью триггера следующим образом:

CREATE TRIGGER [dbo].[ProductDeleted]
ON [dbo].[Product]
AFTER DELETE
AS
BEGIN

   DELETE FROM CompanyLink WHERE ProductID = (SELECT TOP 1 ProductID FROM DELETED)
   DELETE FROM TargetLink WHERE ProductID = (SELECT TOP 1 ProductID FROM DELETED)

END 

Очевидно, что синтаксис может быть не идеальным, но это близко к тому, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...