1:如果用自增字段,是不可能达到楼主所述要求的。
2:
create trigger 名 on real
for delete
As
if (select count(*) from deleted) = (select count(*) from real)
insert his select top 500 * from deleted
2:
create trigger 名 on real
for delete
As
if (select count(*) from deleted) = (select count(*) from real)
insert his select top 500 * from deleted
这样你可以这样写触发器create trigger 名 on real
for delete
As
if (select count(*) from deleted) = (select count(*) from real)
select top 500 IDENTITY(int,1,1) id,* into #temp from deleted
insert his
select * from #temp
--这样写触发器,每次插入的ID都是1开始
for delete
As
if (select count(*) from deleted) = (select count(*) from real)
select top 500 IDENTITY(int,1,1) id,* into #temp from deleted
insert his
select * from #temp drop table #temp
标识字段不能做这样的效果,你不要用标识字段.直接用整型字段就行了.触发器:
create trigger t_delete on Real
for delete
as
if (select count(*) from deleted)=(select count(*) from real) --判断是否全部删除
begin
select id=identity(int,1,1),* into #tb from deleted
insert into His select * from #tb where id in(select top 500 id from #tb order by id desc)
end
answer:
create table aa(
a int identity(1,1) not null,
b int)
go
create trigger tri_a
on aa
for insert
as
begin
declare @b int
select @b=@@identity
if (@b=5)
DBCC CHECKIDENT (aa, RESEED,0)
end
insert into aa select 2
insert into aa select 2
insert into aa select 2
insert into aa select 2
insert into aa select 2
insert into aa select 2
select * from aa
create trigger 名 on real
for delete
As
if (select count(*) from deleted) = (select count(*) from real)
select top 500 IDENTITY(int,1,1) id,* into #temp from deleted
insert his select * from #temp