Sql-Server

分區太多,刪除舊年

  • March 28, 2021

這是幾年前這個問題的後續,在 SQL 2014 中拆分現有分區,現在從 2011 年一直到 2021 年都有分區年。

我需要通過將數據從這些分區移動到新的表/數據庫來歸檔分區 2011 到 2015,然後歸檔這個數據庫,並從原始日誌表中刪除 2011 到 2015 的分區。

我使用以下語句成功地將數據移出到 Log_Archive 表中。

ALTER TABLE dbo.Log
   SWITCH PARTITION $PARTITION.pfYearlyPartition_Log('20120101')
   TO dbo.Log_Archive PARTITION $PARTITION.pfYearlyPartition_Log_Archive('20120101');

我不確定現在如何從 Log 表中刪除該分區,因為它仍然存在但其中包含 0 行。有人可以建議嗎?您可以在下面看到我已成功將數據從 Log 移動到 Log_Archive 但我在原始 Log 表中留下了 0 行要刪除的行。

在此處輸入圖像描述

我希望我不需要重新分區整個表,因為它非常大。

一旦分區為空並且使用相同分區函式的分區方案上的其他分區表在相應分區中沒有數據,只需使用ALTER PARTITION FUNCTION合併空分區中的邊界點。

引用自:https://dba.stackexchange.com/questions/288841