有关触发器中判断记录是否更新的问题

softonecn 2003-11-12 10:43:12
现在对一个表写了一个触发器,我现在利用触发器来进行日志备份,可是我想在记录不发生改变时不记录日志,请问我如何判断Inserted和Deleted表中的记录是否相同?不要告诉我一个字段一个字段的写啊。
...全文
109 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
softonecn 2003-11-12
  • 打赏
  • 举报
回复
pengdali(大力 V3.0) ,
再请教,如果更新的是一组记录,而不是一个记录呢?
例如一共有10个记录,而@@RowCount=5?
pengdali 2003-11-12
  • 打赏
  • 举报
回复
使用 IF UPDATE 子句测试数据修改
下例在表 my_table 中创建名为 my_trig 的 INSERT 触发器,并测试列 b 是否受到任何 INSERT 语句的影响。

CREATE TABLE my_table*
(a int NULL, b int NULL)
GO

CREATE TRIGGER my_trig
ON my_table
FOR INSERT
AS
IF UPDATE(b)
PRINT 'Column b Modified'
GO

pengdali 2003-11-12
  • 打赏
  • 举报
回复
@@ROWCOUNT
返回受上一语句影响的行数。

语法
@@ROWCOUNT

返回类型
integer

注释
任何不返回行的语句将这一变量设置为 0 ,如 IF 语句。

示例
下面的示例执行 UPDATE 语句并用 @@ROWCOUNT 来检测是否有发生更改的行。

UPDATE authors SET au_lname = 'Jones'
WHERE au_id = '999-888-7777'
IF @@ROWCOUNT = 0
print 'Warning: No rows were updated'

34,499

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧