首页 » SQL Server » sql server trigger Solve a problem

sql server trigger Solve a problem

业务的上的要求当然可以从程序或后台控制,如果老程序的代码没有,开发的人又已离开,这对于后来管理来说就是噩梦

今天有个系统sql server数据库,要控制数据的录入(一个时间段内只允许填第一志愿),所以其它的应该禁止,开发的走了,表只能一个个拿来看,还好sql sql 用事件跟踪器,前台修改后台捕捉sql,减少一部份时间,才找到了那个表

create table test (username varchar,wishid int,hpid varchar)
人员-志愿ID-志愿所报单位ID

insert into test(wishid,hpid) values(1,1101)
insert into test(wishid,hpid) values(2,1121)
insert into test(wishid,hpid) values(3,2322)
制作测试数据

要求:只允许填第一志愿(wishid=1)

解决:下面建个trigger

create trigger tri_wish_val
on test
for  update
as
begin
declare @plid int  
declare @php varchar
select @plid = wishid,@php=hpid from inserted  
if(@plid!=1 and @php!='')
begin
RAISERROR ('sorry,这段时间不允许填第一志愿以外的!', 10, 1)
ROLLBACK TRANSACTION
end
end 

可能不太完美,希望可以解决,sql server的trigger语法和oracle 区别还是瞒大的

打赏

目前这篇文章有1条评论(Rss)评论关闭。

  1. Tamala Todesco | #1
    2011-12-21 at 06:23

    Hi there just wanted to give you a brief heads up and let you know a few of the images aren’t loading correctly. I’m not sure why but I think its a linking issue. I’ve tried it in two different browsers and both show the same results.