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

关于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 关注
  • 708 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信