sql-server – 我可以添加一个忽略现有违规的唯一约束吗?
发布时间:2020-12-31 03:46:21 所属栏目: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 Management Studio
- sql-server – 我有关于死锁的数据,但我无法理解它们为什么
- sql-server – 使用带参数的DISTINCT时选择性能性能下降
- 实体框架 – 具有Identity列的SQL Server Compact 4.0表中插
- sql – 在Oracle行的多个列上使用pivot
- sql-server – 使用存储过程作为业务逻辑层
- sql – 如何判断Oracle中的值是否不是数值?
- 高版本sql数据库备份还原低版本怎样实现?
- sql-server – 将参数传递给TADOStoredProc(Delphi)的更好方
- sql-server – SQL Server:如何收缩FileStream文件?
站长推荐
- sql-server-2005 – 无法重建索引,因为行超过最大
- 数据库 – mysqldump – where with =运算符不能
- 有效地包含不在SQL查询的Group By中的列
- sql-server – SQL Server 2008在Insert,Update之
- sql-server – SQL Server存储过程比直接查询慢很
- sql-server – 需要将SQL Server迁移到MySQL
- sql-server – 使用SQL将XML结构转置/展平为列
- sql-server – 对表的大改动有什么好处:每次DEL
- 网页制作中使用规范的HTML代码的几点
- sql-server – 包含要使用文件流的二进制文件的现
热点阅读

