如何在不使用主键和唯一约束的情况下限制重复数据插入表中?
id dat
----------------------------
1 2019-07-30 14:30:13.830
2 2019-07-30 14:30:13.830
3 2019-07-30 14:31:22.587
4 2019-07-30 14:31:51.633
5 2019-07-30 14:34:35.040
5 2019-07-30 14:34:35.040
此处同时插入ID为5的记录
declare @id int = 5
if(@id in (select id from ##time))
print 'already exists'
else
insert into ##time values (@id, getdate()), (@id, getdate())
我试图限制重复数据,但是问题在于它不能同时插入重复记录
答案 0 :(得分:1)
您可以尝试向dat
列添加唯一约束:
ALTER TABLE time ADD CONSTRAINT cnstr_dat UNIQUE (dat);
这将防止插入重复的记录。
答案 1 :(得分:0)
您可以尝试...
insert into yourtable (id, dat)
select distinct id, dat from #temp where id not in (select id from yourtable)
这将防止插入任何重复的ID,同时选择未插入ID的不同记录