【发布时间】:2009-02-13 11:05:38
【问题描述】:
我已经实现了以下触发器:
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 块中,如果发生异常,我可以在其中回滚。这是一种好的做法吗?我应该为这种触发器这样做吗?
谢谢, 杰森
【问题讨论】:
标签: sql-server-2005 triggers try-catch