如何删除 SQL Server 表中的重复行
时间:2008-09-12 来源:legalcode
察看本文应用于的产品
<SCRIPT> function loadTOCNode(){} </SCRIPT> 文章编号 |
: |
139444 |
最后修改 |
: |
2006年3月3日 |
修订 |
: |
4.0 |
概要
<SCRIPT type=text/javascript> loadTOCNode(1, 'summary'); </SCRIPT> Microsoft SQL Server 表不应该包含重复行和非唯一主键。为简洁起见,在本文中我们有时称主键为“键”或“PK”,但这始终表示“主键”。重复的 PK 违反了实体完整性,在关系系统中是不允许的。SQL Server 有各种强制执行实体完整性的机制,包括索引、唯一约束、主键约束和触发器。
尽管如此,在某些情况下还可能会出现重复的主键;如果出现此类情况,就必须清除重复主键。出现重复主键的情形之一是,在 SQL Server 外部的非关系数据中存在重复的 PK,在导入这些数据时没有强制执行 PK 唯一性。出现重复主键的另一种情形来自数据库设计错误,如没有对每张表强制执行实体完整性。
通常在尝试创建唯一索引时会发现重复的