触发器问题

全栈深入 全栈深入 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我们知道在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: 男 => 女


注意哦,表名和被更新的字段名是未知不确定的哦


...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部
全栈深入
疑难问题 22,298 成员 121,727 内容