帮我看一下好不?关于触发器的.

平台想钱想疯了 2003-04-01 09:18:24
CREATE TRIGGER [add] ON dbo.add_friend
FOR INSERT

AS


declare @email varchar(50)

declare @qq1 varchar(20)

Set @email=(select email1 from friend_table ,inserted
where friend_table.nickname1=inserted.my_friend_nickname1)

Set @qq1=(select qq1 from friend_table ,inserted
where friend_table.nickname1=inserted.my_friend_nickname1)

update add_friend set my_friend_email1=@email from friend_table ,inserted
where friend_table.nickname1=inserted.my_friend_nickname1

update add_friend set my_friend_oicq1=@qq1 from friend_table ,inserted
where friend_table.nickname1=inserted.my_friend_nickname1

这是我写的一个触发器,在昨天运行的时候,还没什么问题,可今天
我更新数据后数据中的所有记录的email,与qq都变成了最后新加的,
这是怎么回事呀??少了点什么??
我才学这个,请多多指教.
...全文
31 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢了!
Chiff 2003-04-01
  • 打赏
  • 举报
回复
保证你的my_friend_nickname1是唯一值,并且不为null。

其实还可简化一下

CREATE TRIGGER [add] ON dbo.add_friend
FOR INSERT

update add_friend
set my_friend_email1 = b.email1,
my_friend_oicq1 = b.qq1
from friend_table b,inserted c
where add_friend.my_friend_nickname1 = b.my_friend_nickname1
and b.my_friend_nickname1 = c.my_friend_nickname1

11,849

社区成员

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

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