mssql创建触发器,使得某个表的某个字段不能为负数,如果为负数,则改为0

2025-02-28 20:35:51
推荐回答(2个)
回答1:

if exists(select * from sysobjects where name='tg_update_a')
drop trigger tg_update_a
go
create trigger tg_update_a
on 你的表名   -- 改成你的表名
for update
as
declare @id int   --把id改成你这个表里的标识列的列名,如果类型不一样的话,把int类型也改一下。。
select @id = id from inserted   
if((select a from inserted where id = @id)<0)
    update cardinfo set a=0 where id = @id

--where里的id不要的话,就是把你a字段内的每一行数据都更改成0.

回答2:

create trigger tr
on table_name
after insert
as
begin
if update(a)
if exists ( select 1 from inserted where a < 0 )
update table_name set a = 0
from table_name a join inserted b on a.id = b.id
end