从复合键中删除字段并整理重复数据

GSh*_*gan 6 sql-server-2008 primary-key

我正在寻找最好的方法来更改数据库中表上的主键,而不必再次从文件中完全重新插入数据。我将要进行的修改将删除部分主键,这将导致需要整理数万行。

被删除的密钥部分是日期字段,最初需要它来帮助唯一标识传入数据。但是,此字段在源(不受我的控制)分配的方式已经改变,我们现在只想保留特定记录的最早出现并丢弃较晚出现的。

键中的其余字段(4 个 FK)将产生唯一的记录。

我假设我需要将数据传输到另一个表,进行更改然后重新插入?或者,还有更好的方法?

jco*_*and 5

如果四个记录指示一个唯一的并且您想要第一个按日期,那么为什么不插入另一个表,截断,然后在完成表重新配置后插入(或创建一个具有正确列的新表,插入,然后删除后重命名?)我认为这不能改进,除非您想从不等于的地方删除,但插入到应该更快(需要进行测试以确保)