Я реализовал следующий триггер:
CREATE TRIGGER [OnContactDeleted]
ON [TABLE].[Contact]
INSTEAD OF DELETE
AS
BEGIN
SET NOCOUNT ON
/*Store contact ID to variable*/
Update [TABLE].[Account] Set [PrimaryContactID] = null where [TABLE].[Account].[PrimaryContactID] = (Select ContactID from Deleted)
Delete from [TABLE].[Contact] where [TABLE].[Contact].[ContactID] = (Select ContactID from Deleted)
END
Очистить набор внешних ключей из другой таблицы, а затем удалить текущую запись. Это было сделано, потому что установка внешнего ключа в null при удалении не работает.
Мой вопрос касается обертывания этого триггера в блок try ... catch, где я могу откатиться, если произойдет исключение. Это хорошая практика, и я должен делать это для такого рода триггера?
Спасибо,
Jason