我正在寻找最好的方法来更改我的数据库中表的主键,而不必再次完全重新插入文件中的数据。我要做的修改是删除部分主键,这将导致需要整理数万行。
被删除的键部分是一个日期字段,最初需要它来帮助唯一地识别传入的数据。但是,该字段在源处分配的方式(不受我的控制)已经改变,我们现在只想保留特定记录的最早出现并丢弃后来出现的记录。
键中的其余字段(4 个 FK)将产生唯一记录。
我假设我需要将数据传输到另一个表,进行更改然后重新插入?或者,还有更好的方法?
我正在寻找最好的方法来更改我的数据库中表的主键,而不必再次完全重新插入文件中的数据。我要做的修改是删除部分主键,这将导致需要整理数万行。
被删除的键部分是一个日期字段,最初需要它来帮助唯一地识别传入的数据。但是,该字段在源处分配的方式(不受我的控制)已经改变,我们现在只想保留特定记录的最早出现并丢弃后来出现的记录。
键中的其余字段(4 个 FK)将产生唯一记录。
我假设我需要将数据传输到另一个表,进行更改然后重新插入?或者,还有更好的方法?
如果这四条记录规定了一个唯一的并且您希望第一个按日期记录,那么为什么不插入另一个表,截断,然后在完成表重新配置后插入(或创建一个具有正确列的新表,插入,然后删除后重命名?)我不认为这可以改进,除非你想从不等于的地方删除,但插入应该更快(需要测试以确定)
您可以使用 BCP(批量复制)将表的数据复制到文件中,截断表,删除旧的 PK,创建新的 PK(只有 4 列),使用忽略重复。
对于许多行来说,没有什么能比批量复制更好:)。