如何避免级联触发?

631799 2004-11-04 04:18:57
有表两[db1.dbo.tb1] 和[db2.dbo.tb2] --在不同的库中
为了保证两表的某一字段相同。
所以写:
use db1
go
create TRIGGER tr_pwd_same_1 ON db1.dbo.tb1
FOR UPDATE
AS
if update(user_pwd)
update db2.dbo.tb2 set user_password = (select user_pwd from inserted) where user_id = (select user_base_id from inserted)

go
use db2
go
create TRIGGER tr_pwd_same_1 ON db2.dbo.tb2
FOR UPDATE
AS
if update(user_password)
update db1.dbo.tb1 set user_pwd= (select user_password from inserted) where user_base_id = (select user_id from inserted)

go
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
631799 2004-11-04
  • 打赏
  • 举报
回复
可以。谢了
631799 2004-11-04
  • 打赏
  • 举报
回复
这样不行吧,这样已经触发了。还是要造成死循环的啊
pbsql 2004-11-04
  • 打赏
  • 举报
回复
update 之前多加个判断,若对应的 user_pwd 与 user_password 不同才 update
631799 2004-11-04
  • 打赏
  • 举报
回复
up myself.
tina2elva 2004-11-04
  • 打赏
  • 举报
回复
分太少了 ,呵呵,我是不懂
631799 2004-11-04
  • 打赏
  • 举报
回复
这样造成了死循环,如何解决啊?

还有这个触发器如何在优化一下呢?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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