为了账号安全,请及时绑定邮箱和手机立即绑定

关于SQL server触发器的问题

关于SQL server触发器的问题

FFIVE 2018-07-11 14:14:01
table1,table2两表,table1表里面有a1,a2.字段,table2中有b1,b2字段。我想再table1表中添加一个触发器,a2=b2 情况下 如果table2中b1=1时,table1中a1则允许修改,如果table2中b1=0时,则table1中a1不允许修改并提示 table2未审核
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

创建测试表,数据:


create table table1

(a1 int,

a2 int)

 

create table table2

(b1 int,

b2 int)

 

insert into table1 values (1,1)

insert into table1 values (1,2)

 

insert into table2 values (0,1)

insert into table2 values (1,2)

创建触发器:


create trigger t_update

on table1

for update

as

declare @a2 int

declare @b1 int

declare @cnt int

select @cnt=count(*) from inserted where a2 in (select b2 from table2)

select @b1=b1 from table2 where b2=(select a2 from inserted)

if (@cnt>0 and @b1=1)

begin

print '不允许修改'

rollback transaction

end

测试1:修改a2=1的那条数据里的a1为其他值:


1

update table1 set a1=100 where a2=1 -- 这个是允许修改的

测试2:修改a2=2的那条数据a1为其他值:

1

update table1 set a1=10 where a2=2 -- 这个是不允许修改的,会报错



剩下的你自己改改吧,大概思路就这样了。


查看完整回答
反对 回复 2018-08-25
  • 1 回答
  • 0 关注
  • 762 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号