And*_*rea 7 sql-server partitioning
我正在将一个旧数据库从 SQL Server 2005 迁移到 SQL Server 2014。这个数据库有一个分区表;计划作业定期将旧数据从“在线”表移动到历史表。
当我尝试使用以下代码移动分区时,作业失败:
ALTER TABLE Warehouse.TBW_MY_DATA
SWITCH PARTITION 1
TO Warehouse.TBW_MY_DATA_STAGING
Run Code Online (Sandbox Code Playgroud)
这是错误消息:
消息 4939,级别 16,状态 1,第 4 行 ALTER TABLE SWITCH 语句失败。索引“MY_DATABASE.Warehouse.TBW_MY_DATA_STAGING.PKW_MY_DATA_STAGING”在文件组“FG_EDRN_2009123100085”中,索引“MY_DATABASE.Warehouse.TBW_MY_DATA.PKW_MY_DATA”的分区1在文件组“EDRN_2009123100085”中
错误的实际截图:

MY_DATABASE.Warehouse.TBW_MY_DATA_STAGING.PKW_MY_DATA_STAGING和MY_DATABASE.Warehouse.TBW_MY_DATA.PKW_MY_DATA是主键的聚集索引。
我试过的:
为了隔离问题,我以不同的兼容性级别运行作业。
该错误仅在使用兼容级别 120 (SQL Server 2014) 时发生。在兼容级别 100 和 110(分别是 SQL Server 2008 和 SQL Server 2012)下,一切正常。因此,从 SQL Server 2012 到 SQL Server 2014 的分区处理可能发生了一些变化。
我在 TechNet 上阅读了有关“通过使用分区切换有效地传输数据”的文章,但没有提及弃用日期/版本,即使我注意到该文章仅适用于 SQL Server 2005 和 2008。