sql-server - 限制重复记录同时插入表中
问题描述
如何在不使用主键和唯一约束的情况下限制重复数据插入表?
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())
我试图限制重复数据,但问题是它不适用于同时插入的重复记录
解决方案
您可以尝试向dat
列添加唯一约束:
ALTER TABLE time ADD CONSTRAINT cnstr_dat UNIQUE (dat);
这将防止插入重复记录。
推荐阅读
- google-sheets - 如何获取单元格中空格分隔单词中的最后一项?
- xml - 如何将大型 XML 文件发送到下游服务
- fluid-framework - 流体框架受众和会员资料数据
- snowflake-cloud-data-platform - 如何检查程序所有权?
- linear-regression - 针对特定变量分别回归
- r - RStudio 如何在您的桌面上找到 R GUI
- azure - Azure Calculator API:如何获得预期的网络带宽指标?
- ssis - SSIS 选择了错误的数据类型
- azure-functions - 是否可以从外部包注册 Azure 函数?
- c# - 是否可以将 DbContext 从一个项目传递到另一个项目?