SQL语句,在往表test中插入“内容”字段时,检查该字段是否有重复数据

若与表中数据有重复,则忽略,不插入,如何实现?用触发器?最好有具体语句(不用唯一性索引)

--创建表 
create table test(
cid int not null,
content varchar(128) not null
)
--触发器,如果test中的content已经存在要插入的值即不执行插入操作,否则执行插入操作
create trigger trg_content_insert
on test
instead of insert
as
declare @content varchar(128),@c int;
select @content=content from inserted;
select @c=count(1) from test where content=@content;
if @c>0
 print'已经存在该内容,不可重复插入'
else 
 begin
  insert into test select * from inserted;
  print'不存在该内容,插入成功'
 end
go

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-10
INSERT INTO 表(列名) VALUES(CASE WHEN EXISTS(SELECT * FROM 表 WHERE 列名='插入的值') THEN '' ELSE '插入的值' END)本回答被提问者和网友采纳