数据库完整性有哪些:哪位数据库大侠能帮小弟编一个身高触发器啊
来源:百度文库 编辑:杭州交通信息网 时间:2024/05/19 23:35:59
修改身高时只能比原来增长
写了个触发器你参考一下,我特意设置了一个identity列id,主要是为了在触发器里使不满足条件的更新“无效”的时候用到。原来是想写个instead触发器,不过如果你更新其他字段的话可能就出问题了,比较省事的方法是直接用update触发器了。
--首先创建一个表用来测试
create table test001
(
id int identity,
code int
)
--以下是创建update触发器的语句,思路是,如果更新的时候code字段比原来小,那么再把它的值更新为原值,这样就使修改无效了。
create trigger tg_test001_update
on test001
for update
as
declare @oldcode int
declare @newcode int
declare @rowid int
select @oldcode=code from deleted
select @newcode=code from inserted
select @rowid=id from deleted
if @oldcode>@newcode
begin
update test001
set code=@oldcode
where id=@rowid --这里用到了identity列
end
---------------------------------
测试的时候
用
insert into test001 select 2
先尝试
update test001
set code=1
select * from test001
会发现值没变
而update test001
set code=3
则值就变为3了