Foxtable(狐表)用户栏目专家坐堂 → 关于触发器,请教大神


  共有1804人关注过本帖树形打印复制链接

主题:关于触发器,请教大神

帅哥哟,离线,有人找我吗?
newsun2k
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:11133 威望:0 精华:0 注册:2014/8/13 16:19:00
关于触发器,请教大神  发帖心情 Post By:2017/9/4 17:08:00 [显示全部帖子]

我想记录一个表更新前后的数据。
创建了如下的触发器。
实际运行时,发现,有这样的问题:
记录表中,存在这样的数据:列1是原表数据1的,列2是原表数据2的。
这是什么原因呢?
请大神指导啊。




 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:11133 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2017/9/4 17:09:00 [显示全部帖子]

crea te trigger trigger1
on 表A
     for update
as 
ins ert into 记录表(
列1_更新前,
列2_更新前,
列1_更新后,
列2_更新后
)
sel ect max(列1_更新前),max(列2_更新前),max(列1_更新后),max(列2_更新后)
fro m (
select 1 AS 类别,
列1 as 列1_更新前,
列2 as 列2_更新前,
null as 列1_更新后,
null as 列2_更新后
fro m deleted
uni on all
sel ect 1 AS 类别,
null as 列1_更新前,
null as 列2_更新前,
列1 as 列1_更新后,
列2 as 列2_更新后
fro m inserted
)
group by 类别

 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:11133 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2017/9/4 20:01:00 [显示全部帖子]

就是我的记录表中存在这样的数据。
列1_更新前    列2_更新前   列1_更新后   列2_更新后
A1                 B1                  A1                B2

但是,很明显,A1 和 B1 是来自表A中的两行数据,B1对应的列1,不是A1。
这我有点傻眼了。
难道inserted中有多行数据?deleted中有多行数据?




 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:11133 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2017/9/4 20:14:00 [显示全部帖子]

哦,知道了


 回到顶部