【发布时间】:2011-04-29 11:33:26
【问题描述】:
通过使用 IDENTITY_INSERT 的某些设置,我们在身份列中有重复条目,删除重复条目的最佳方法是什么。
我有一个带有 DetailID 列的表 Details | FKey | Col1 | Col2 | Col3 | Col4
DetailID 是“身份”,FKey 是另一个表的外键。
现在我们已经有 240000 条记录。有人使用了“IDENTITY_INSERT”,这不是用于该表的,而是错误地应用于该表。所以它有重复身份的记录。
所以首先我们只需要选择那些具有相同标识的行,然后我们需要匹配所有列的数据,如果它们都相同,然后只保留一行并删除其他行,但只有标识是重复的,那么我们需要更新标识价值。
【问题讨论】:
-
您能否详细说明您希望保留哪些副本?
-
如果行相同,那么我想删除一行,如果行不同,然后想将标识值更新到下一个。
-
是的,但我们只知道一列 - IDENTITY。您还想使用其他列来区分重复项吗?
-
实际上该表与主表有外键,所以首先我们只需要选择那些具有相同标识的行,然后我们需要匹配所有列的数据,如果都相同,然后只保留一行并删除其他人,但只有身份是重复的,那么我们需要更新身份值。
-
@Jeevan Bhatt:建议您使用更多信息更新您的问题
标签: sql sql-server sql-server-2005 tsql