楼主说的是触发前触发器
例子:如果A表要插入数据X,如果插入数>0就插入
create trigger Mytrigger
on A
instead of insert
as
begin
declare @x int
select @x=X from inserted
if(@x>0)
begin
insert into A values(@x)
end
end
当然你可以再申明个变量将0换成查询原表数据 ,如:
create trigger Mytrigger
on A
instead of insert
as
begin
declare @x int
declare @Y int
-------------------------------------------------------
select @y=max([需要比对的数据列名]) from [原表表名]
-------------------------------------------------------
select @x=X from inserted
-----------------------------------------------------
if(@x>@y)
-----------------------------------------------------
begin
insert into A values(@x)
end
end
---横杠无意义,是要你注意下这里的代码的比对
触发器里new.列名是新插入的数据;
原表数据就不用我说了吧。
要注意的是直接对比应该不行,需要create一个临时表用insert from,用这个临时表和原表去对比。写个存储过程就OK啦。
1.声明一个变量,
2.查询inserted表的数据放入其中,
3.查询表中最大值,与变量值比较。