触发器问题,两个表中的插入、更新问题,谢。。

yjcinfo 2003-08-18 10:20:02
A表中“学号”,“姓名”,“学分”三列,B 表中“学号”,“姓名”,“学分”三列,A,B的结构是一样的,现在在A表中插入一条记录时,如果B表中没此记录,就在B表中插入“学号”,“姓名”,“学分”,如果已经有了就修改“学分”这个触发器该怎么写,先谢了
...全文
49 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baolin 2003-08-18
  • 打赏
  • 举报
回复
完全赞同!
txlicenhe 2003-08-18
  • 打赏
  • 举报
回复
or:
create trigger yourTriggerName on A
For insert
As
update B set 学分 = inserted.学分 from B
join inserted on b.学号 = inserted.学号
insert B select 学号,姓名,学分 from inserted
where 学号 not in (select 学号 from B)

txlicenhe 2003-08-18
  • 打赏
  • 举报
回复
create trigger yourTriggerName on A
For insert
As
if exists(select 学号 from B join inserted on b.学号 = inserted.学号)
update B set 学分 = inserted.学分 from B join inserted on b.学号 = inserted.学号
else
insert B select 学号,姓名,学分 from inserted
yjcinfo 2003-08-18
  • 打赏
  • 举报
回复
搞定,谢了
yjcinfo 2003-08-18
  • 打赏
  • 举报
回复
insert B select 学号,姓名,学分 from inserted 会出错的系统提示:仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 B中为标识列指定显式值。

34,875

社区成员

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

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