触发器问题,一表UPDATE触发另一表也UPDATE

benbacon 2005-04-21 01:55:32
表parent:
id child_id
1 ,1,2,
2 ,1,3,

表child:
id parent_id
1 ,1,2,
2 ,1,
3 ,2,

希望得到的结果是这样,如果表parent的child_id列有update,那么表child的parent_id列也有相应的变化

请大家帮忙~~~
...全文
172 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
benbacon 2005-04-21
  • 打赏
  • 举报
回复
create语句的on有误

我总觉的处理update不用这么复杂吧?请高人指点
benbacon 2005-04-21
  • 打赏
  • 举报
回复
OK,自己会了,贴一下,大家帮忙看看哪里可以改进

CREATE TRIGGER test ON AdminGroup FOR UPDATE
AS
update C set parent_id = replace(C.parent_id,D.id,'')
from 表child C,deleted D
where charindex(','+cast(C.id as varchar(10))+',',','+D.child_id+',')>0
update C set parent_id = C.parent_id+I.id
from 表child C,inserted I
where charindex(','+cast(C.id as varchar(10))+',',','+I.child_id+',')>0

,重复问题另行处理
xluzhong 2005-04-21
  • 打赏
  • 举报
回复
create trigger t
on parent
for update
as
if update(child_id)
update child --- 具体操作
go
  • 打赏
  • 举报
回复
用数据库触发器实现
paoluo 2005-04-21
  • 打赏
  • 举报
回复
说对了,Update实际上就是那样。

所以有Deleted和Inserted。
benbacon 2005-04-21
  • 打赏
  • 举报
回复
再问一个很菜的问题,UPDATE的原理是不是插入一条新纪录,然后把旧的那条删掉?
benbacon 2005-04-21
  • 打赏
  • 举报
回复
另外,我觉的在update的时候如果用到inserted不是很好理解,能不能解释一下,偶想得到的不仅仅是一些代码

benbacon 2005-04-21
  • 打赏
  • 举报
回复
什么叫做id关联?
偶只知道parent里列child_id内容只能是child表的id,
而child里列parent_id内容只能是parent表的id
paoluo 2005-04-21
  • 打赏
  • 举报
回复
两表是id关联吗??

34,590

社区成员

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

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