写个sql插入触发器,有三张表A、B
当A中插入数据执行触发器
判断A中字段id,如果id等于‘LT’
则把A中相应id和date相同的字段信息插入B中
如果id等于‘QXLT’则删除B中对应Mo相同的字段
简单的字段为Mo、id、date 其他的无所谓
请教下这个触发器怎么写
特别是判断部分不太会的说
现在用的是老版本的SQL2000
应该需要用个触发器来完成操作吧
sql触发器中判断语句...
答案:3 悬赏:50
解决时间 2021-02-18 12:16
- 提问者网友:离殇似水流年飞逝
- 2021-02-18 02:35
最佳答案
- 二级知识专家网友:没感情的陌生人
- 2021-02-18 03:13
这么写:
create trigger tg_name
on A
for insert
as
insert into B(id,date)
select id,date
from inserted
where id ='LT'
delete from B
from inserted,B
where inserted.id='QXLT' and inserted.Mo=B.Mo
create trigger tg_name
on A
for insert
as
insert into B(id,date)
select id,date
from inserted
where id ='LT'
delete from B
from inserted,B
where inserted.id='QXLT' and inserted.Mo=B.Mo
全部回答
- 1楼网友:一起来看看吧
- 2021-02-18 04:23
呵呵,看到你的这个问题了,回答一下,希望能给你增加印象。
由于sqlserver 没有oracle中的行级触发器的概念,触发器如下:
create trigger [tc2]
on [dbo].[teacher]
for insert,update
as if (select salary from inserted)<3000
update teacher set salary=3000 and tid= (select tid from inserted)
说明:当你插入数据的时候,这条数据是存放在【inserted】表中的,在这个表中把【teacher】表的主键得到(假如是【tid】)然后把这个主键信息加到where 条件上,这样就能起到只更新插入的那一条数据的效果了,否则会出现更新了全表的问题。
---
以上,希望对你有所帮助。
- 2楼网友:迷人小乖乖
- 2021-02-18 03:21
oracle 9i以上(含)可不用触发器,MSSqlServer2008也可以不用触发器。你需要哪个?
哈哈,只能用触发器了!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |