sql-server – 我可以添加一个忽略现有违规的唯一约束吗?
发布时间:2020-12-30 23:16:57 所属栏目:MsSql教程 来源:网络整理
导读:我有一个表,当前在列中有重复的值. 我无法删除这些错误的重复项,但我想阻止添加其他非唯一值. 我可以创建一个不检查现有合规性的UNIQUE吗? 我尝试过使用NOCHECK但是没有成功. 在这种情况下,我有一个表将许可信息与“CompanyName”联系起来 编辑:具有相同“C
|
我有一个表,当前在列中有重复的值. 我无法删除这些错误的重复项,但我想阻止添加其他非唯一值. 我可以创建一个不检查现有合规性的UNIQUE吗? 我尝试过使用NOCHECK但是没有成功. 在这种情况下,我有一个表将许可信息与“CompanyName”联系起来 编辑:具有相同“CompanyName”的多行是错误数据,但我们目前无法删除或更新这些重复项.一种方法是让INSERT使用一个存储过程,这个存储过程会因重复而失败……如果有可能让SQL自己检查唯一性,那就更好了. 公司名称查询此数据.对于少数现有的重复项,这将意味着返回并显示多行…虽然这是错误的,但在我们的用例中是可以接受的.目标是在将来防止它.从评论中我可以看出,我必须在存储过程中执行此逻辑. 解决方法答案是肯定的.您可以使用筛选索引执行此操作(有关文档,请参阅 here).例如,你可以这样做: create unique index t_col on t(col) where id > 1000; 这将仅在新行上创建唯一索引,而不是在旧行上创建.这种特殊的表述将允许具有现有值的重复. 如果您只有少量重复项,您可以执行以下操作: create unique index t_col on t(col) where id not in (<list of ids for duplicate values here>); (编辑:天瑞地安资讯网_黄海网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 高效插入具有聚簇索引的表
- SQL查询如果匹配另一个表中的条目(例如假日日期),则排除记录
- sql-server – 备份master数据库的频率是多少?
- sql-server – 每次执行触发器编译吗?
- sql-server – 数据库对象的版本控制
- sql-server – 唯一索引,varchar列和(空格)空格的行为
- 如何为 Element UI 里的 autosize textarea 设置高度
- SQL Server 2008 R2:准备动态WHERE子句
- sql-server – 当包装在TVF中时,查询变得非常慢
- entity-framework – 如何将数据库模式从Identity 2.2.0迁移
站长推荐
热点阅读


