我正在对基于SQL Server 2000的传统应用程序进行一些调整,不用说我只想做最小的事情,因为它可能会全部崩溃。INSTEAD OF UPDATE触发器 - 这可能吗?
我有一个用户的大表,tbUsers,与IsDeleted BIT标志。我想将所有当前和未来的IsDeleted = 1用户记录归档到我的归档表tbDeletedUsers中。
移动当前被删除的用户很简单,但我想要一种方法来移动设置了IsDeleted标志的未来用户。我可以在列上使用标准的AFTER触发器,但是我打算在tbUser表中添加一些违反此约束的约束,我希望我的INSTEAD OF UPDATE触发器触发并将记录移动到归档表中?
我想我的问题是......是否有可能在更新某个列时触发INSTEAD OF UPDATE触发器?这是我到目前为止:
CREATE TRIGGER trg_ArchiveUsers
INSTEAD OF UPDATE ON tbUsers
AS
BEGIN
...
END
GO
如果是这样一个例子(SQL 2000兼容)将不胜感激!
最新动态( columnName)在SQL Server中不存在。而是使用COLUMNS_UPDATED(columnName)。 http://msdn.microsoft.com/en-us/library/ms186329.aspx – 2013-01-04 21:19:08
谢谢你的评论。你是对的,在SQL Server中没有UPDATES()函数,也没有UPDATED(),正如我最初写的那样。它实际上称为[UPDATE()](http://msdn.microsoft.com/en-us/library/ms187326.aspx)。编辑我的答案,并再次感谢我的错误引起我的注意。 – 2013-01-05 11:44:21
而你似乎也错了,因为COLUMNS_UPDATED()不接受参数。它返回一个位掩码,它反映了调用触发器的语句所影响的所有列。我从来没有使用过这个功能,但是从手册来看,我想我已经有了一个大概的想法。 – 2013-01-05 11:49:48