触发器问题
我们知道在ms sql里面触发器根据触发的种类有三种INSERT,DELETE,UPDATE,当我们新增/修改/删除一个数据表中记录的数据时,触发器都会被激发.从而执行相应触发器里面的脚本.现在的问题是:
1.问题1:有没有什么办法取得引起触发的Insert/Update/Delete原始语句?
比如说有一个Table名为User,有以下一些数据
ID UserName Sex Age High Address Tel Fax
-------------------------------------------------------------------------
1 张三 男 20 170 深圳 123456 123456
2 李四 男 21 172 北京 823456 223456
3 王五 男 22 179 深圳 923456 323456
4 赵六 男 24 168 上海 623456 423456
5 马七 男 30 180 成都 723456 523456
6 侯八 男 52 178 深圳 423456 623456
有一个未知的更新类型更新未知的字段值:
Insert user(UserName,Sex) values ('John','男')或者
Update User set High = 185 where ID = 3 或者其它的.
在触发器里面怎么取得
"Insert user(UserName,Sex) values ('John','男')"
"Update User set High = 185 where ID = 3"的字符串
2.问题2:更新一个未知表时能不能获取被更新的未知字段的前后变化值
比如说上面一个表中,当Update User set High = 185,Sex ='女' where ID = 3时
我要取High变动之前的值和变动之后的值,自动在日志记录的表里面产生一条这些什么表由什么值变动到什么值的记录,如下,怎么实现?
ID TableName ChangeDetail
1 User 修改内容:Hign值:179 => 185 ,Sex: 男 => 女
注意哦,表名和被更新的字段名是未知不确定的哦
1.问题1:有没有什么办法取得引起触发的Insert/Update/Delete原始语句?
比如说有一个Table名为User,有以下一些数据
ID UserName Sex Age High Address Tel Fax
-------------------------------------------------------------------------
1 张三 男 20 170 深圳 123456 123456
2 李四 男 21 172 北京 823456 223456
3 王五 男 22 179 深圳 923456 323456
4 赵六 男 24 168 上海 623456 423456
5 马七 男 30 180 成都 723456 523456
6 侯八 男 52 178 深圳 423456 623456
有一个未知的更新类型更新未知的字段值:
Insert user(UserName,Sex) values ('John','男')或者
Update User set High = 185 where ID = 3 或者其它的.
在触发器里面怎么取得
"Insert user(UserName,Sex) values ('John','男')"
"Update User set High = 185 where ID = 3"的字符串
2.问题2:更新一个未知表时能不能获取被更新的未知字段的前后变化值
比如说上面一个表中,当Update User set High = 185,Sex ='女' where ID = 3时
我要取High变动之前的值和变动之后的值,自动在日志记录的表里面产生一条这些什么表由什么值变动到什么值的记录,如下,怎么实现?
ID TableName ChangeDetail
1 User 修改内容:Hign值:179 => 185 ,Sex: 男 => 女
注意哦,表名和被更新的字段名是未知不确定的哦
...全文
相关推荐
MSSQL2008R2 触发器问题代码
触发器可能会引发性能问题,因为它们增加了数据库操作的复杂性。如果处理不当,触发器可能导致死锁,或者在高并发环境下成为性能瓶颈。为了解决这些问题,以下是一些最佳实践:1.
MYSQL设置触发器权限问题的解决方法
然而,设置和管理触发器涉及到权限问题,特别是当涉及`SUPER`权限和二进制日志(binary logging)时。本文将深入探讨这些问题并提供解决方案。
mysql设置触发器权限问题的解决方法.docx
触发器可以用于实现复杂的业务逻辑,如数据验证、审计跟踪或者保持数据的一致性。然而,对于权限管理,有时会遇到无法创建或修改触发器的问题,这通常与用户的权限不足有关。
对有insert触发器表取IDENTITY值时发现的问题
"在SQL Server数据库中,遇到一个与insert触发器相关的问题,当向具有触发器的T1表插入数据时,通过@@IDENTITY获取的ID值实际上是T2表新插入记录的ID,而非T1表的。这涉及到
mysql设置触发器权限问题的解决方法.pdf
然而,在设置触发器时,用户可能会遇到权限问题,导致无法创建或修改触发器。本文将详细介绍 MySQL 设置触发器权限问题的解决方法。


疑难问题
