--创建表
CREATE TABLE a(
a1 nvarchar(50) NULL,
a2 int NULL
)
--查询数据
select * from a
--添加数据
insert into a values('1',2)
--清除数据
truncate table a
--触发器
alter trigger tri_insert_a
on a
INSTEAD OF insert
as
begin
--在插入数据时,检查最新的100条数据里、有多少条重复记录(按a1,a2两个字段检查重复);如果重复记录超过1条,就不再插入数据。
SELECT * FROM a
INSERT INTO a(a1, a2)
SELECT I.a1,I.a2
FROM INSERTED I
left JOIN
(
SELECT TOP(100) a1, a2 FROM a WITH(NOLOCK)
) T
ON i.a1 = i.a1
AND I.a2 = T.a2
GROUP BY i.a1, i.a2
HAVING COUNT(t.a1) < 1 and count(t.a2)<1
end