在https://stackoverflow.com/a/26048363/143768中,使用分区切换的神奇功能,提供了一种从表中消除IDENTITY属性的巧妙方法。但是,如果您的表已经分区,则此方法不起作用。 (事实上,这种方法更适用于非常大的多TB表,它们可能已经被分区了。)
由于我正是在这种情况下工作 - 尝试消除某些非常大的表上的IDENTITY属性 - 是否有人知道如何使此解决方案适应已经分区的表?
编辑:这实际上比我原先想象的要复杂得多。至少有一个未分区的索引。当我尝试传统的分区切换时:
ALTER TABLE [dbo].[era_adj] SWITCH PARTITION 1 TO [dbo].[tmp_ms_xx_era_adj] PARTITION 1;
. . .
ALTER TABLE [dbo].[era_adj] SWITCH PARTITION 57 TO [dbo].[tmp_ms_xx_era_adj] PARTITION 57;
我收到错误:
Msg 7733, Level 16, State 4, Line 21
'ALTER TABLE SWITCH' statement failed. The table 'ERADev.dbo.era_adj' is partitioned while index 'PK_era_adj' is not partitioned.
所以现在我还需要弄清楚如何对索引进行分区......