关于SQL server触发器的问题

table1,table2两表,table1表里面有a1,a2.字段,table2中有b1,b2字段。我想再table1表中添加一个触发器,a2=b2 情况下 如果table2中b1=1时,table1中a1则允许修改,如果table2中b1=0时,则table1中a1不允许修改并提示 table2未审核

FFIVE
浏览 709回答 1
1回答

缥缈止盈

创建测试表,数据: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_updateon table1for updateasdeclare @a2 intdeclare @b1 intdeclare @cnt intselect @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)beginprint '不允许修改'rollback transactionend测试1:修改a2=1的那条数据里的a1为其他值:1update table1 set a1=100 where a2=1 -- 这个是允许修改的测试2:修改a2=2的那条数据a1为其他值:1update table1 set a1=10 where a2=2 -- 这个是不允许修改的,会报错剩下的你自己改改吧,大概思路就这样了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server