首页 > 解决方案 > 限制重复记录同时插入表中

问题描述

如何在不使用主键和唯一约束的情况下限制重复数据插入表?

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())

我试图限制重复数据,但问题是它不适用于同时插入的重复记录

标签: sql-server

解决方案


您可以尝试向dat列添加唯一约束:

ALTER TABLE time ADD CONSTRAINT cnstr_dat UNIQUE (dat);

这将防止插入重复记录。


推荐阅读