触发器添加数据不重复例子

三世轮回 提交于 2019-12-03 20:16:07
--创建表
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

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!