急急急!触发器 or 存储过程问题

fire_2011 2013-01-02 12:18:09
现在我的项目是用的是数据库B,要从数据库A中有一个表a内提取数据,但是不能直接在数据库A中操作,所以在数据库B中建了一个数据A.a 的一个视图aView,如果数据库A.a里面有了操作(一般是insert操作),视图aView也就同时更新了呗,我想将这个更新(一般是A.a的插入insert操作),同时写入数据库B的表b中,如何做呢,我的做法是在aView中创建了个instead of 触发器,然后如果有插入操作,就会将这个插入操作同时写入到B.b中去,但是发现触发器执行不了,(如果是人为在视图中添加数据,触发器可以执行,但是如果数据库A.a的插入操作,就不能触发执行,不知道如何进行)
...全文
165 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fire_2011 2013-01-02
  • 打赏
  • 举报
回复
引用 1 楼 szm341 的回复:
那应该给A.a添加触发器,触发后操作B.b
不行啊,数据库A中不让进行操作,不能在A中进行添加触发器
szm341 2013-01-02
  • 打赏
  • 举报
回复
那应该给A.a添加触发器,触发后操作B.b
fire_2011 2013-01-02
  • 打赏
  • 举报
回复
引用 8 楼 szm341 的回复:
没有id对应就拿你能对应的数据喽,不是有登录账号与时间吗 这两个值就可以唯一确定数据了啊
如果有一千多条数据,这个语句执行下来应该就是执行100万次了吧 ,因为每条的数据都要比较,成了1000*1000的比较了,数据太大了,系统担心会出问题 ,能加Q聊下么
szm341 2013-01-02
  • 打赏
  • 举报
回复
没有id对应就拿你能对应的数据喽,不是有登录账号与时间吗 这两个值就可以唯一确定数据了啊
fire_2011 2013-01-02
  • 打赏
  • 举报
回复
引用 6 楼 QQ258058051 的回复:
引用 5 楼 szm341 的回复: 就是查看一下b与视图a的不同,把不同的地方修改过来或者 把a中有b中没有的插入过来 如 insert into b select * from view_a where id not in (select id from b) 修改的话就麻烦一点了 update b set b.col1=a.col1 from a where a.id=b.i……
刚才点错了 ,不好意思,能加个Q聊么,就是我的账号
fire_2011 2013-01-02
  • 打赏
  • 举报
回复
引用 5 楼 szm341 的回复:
就是查看一下b与视图a的不同,把不同的地方修改过来或者 把a中有b中没有的插入过来 如 insert into b select * from view_a where id not in (select id from b) 修改的话就麻烦一点了 update b set b.col1=a.col1 from a where a.id=b.id and a.col1<>b.col1……
不能这样写啊,aView中没有id号的,而且就算是有,两个id也对应不起来,要提取三个数据,一个是登录时间,一个是登陆人,和登陆人的账号,三个数据,然后插入到B.b中的登陆时间,检查时间,登陆人,和账号中去,其中,b.登陆时间和b.检查时间都是取得aView.登陆时间
szm341 2013-01-02
  • 打赏
  • 举报
回复
就是查看一下b与视图a的不同,把不同的地方修改过来或者 把a中有b中没有的插入过来 如 insert into b select * from view_a where id not in (select id from b) 修改的话就麻烦一点了 update b set b.col1=a.col1 from a where a.id=b.id and a.col1<>b.col1 update b set b.col2=a.col2 from a where a.id=b.id and a.col2<>b.col2
fire_2011 2013-01-02
  • 打赏
  • 举报
回复
引用 3 楼 szm341 的回复:
那就不行了,在B库中的触发器只能在B库中的视图发生触发操作 a表在A库中自主的修改是触发不了B库中的触发器的 如果A库不让动那只能定时查看B中的视图了,若有变化及时修改吧
求存储过程的写法,不怎么会写啊,现在还没写出来,也不知道怎么判断视图,能给个代码么
szm341 2013-01-02
  • 打赏
  • 举报
回复
那就不行了,在B库中的触发器只能在B库中的视图发生触发操作 a表在A库中自主的修改是触发不了B库中的触发器的 如果A库不让动那只能定时查看B中的视图了,若有变化及时修改吧

34,590

社区成员

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

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