我有一個表 'X',也下面撤消表分區
- CREATE PARTITION FUNCTION PF1(INT)AS RANGE LEFT FOR VALUES(1,2,3,4)
- CREATE PARTITION SCHEME PS1 AS PARTITION PF1 ALL TO([PRIMARY])
- CREATE CLUSTERED INDEX CIDX_X ON X(COL1)ON PS1(COL1)
創建我有數據的4個邏輯分區這3個步驟。
我的問題是,我該如何將此分區恢復到其原始狀態?
我有一個表 'X',也下面撤消表分區
創建我有數據的4個邏輯分區這3個步驟。
我的問題是,我該如何將此分區恢復到其原始狀態?
經過不斷的搜索
步驟2天:
DROP INDEX CIDX_X on X
/*刪除聚集*/CREATE CLUSTERED INDEX CIDX_X1 ON X(col1) ON [PRIMARY]
/*創建表上的另一個聚集索引從分區釋放它方案;在這裏,「ON [primary]」部分是從表中刪除分區方案的關鍵! */DROP PARTITION SCHEME PS1
DROP PARTITION FUNCTION PF1
DROP INDEX CIDX_X1 ON X
/*放棄你所創建的虛擬聚集索引,因爲它是唯一的創建從分區方案*/我發現,這些額外的免費表步驟應該被添加到Storm給出的答案中,因爲在刪除聚集索引之前有一些點,發佈需要被刪除,因爲它不允許聚簇索引在刪除之前被刪除,並且在刪除之後 - 方案和分區功能需要重新創建和公佈還需要再次啓動。
注:我使用SQL 2012
主鍵通常是最常用的集羣約束,所以無論我使用的主鍵,考慮到這些步驟也適用於集羣的約束了。另外,PS =分區方案,PF =分區功能。
一些準備步驟:
以上所有內容,使用SQL Management Studio在右擊時生成腳本。並選擇刪除和創建。
現在,當一切準備就緒。
1.刪除發佈(使用您生成的腳本)
2.刪除與PS鏈接的這些表的主鍵約束。 alter table [tablename] drop constraint [pk_name]
3.創建一個虛擬約束,但使用您在該被刪除的主鍵中使用的相同字段。 CREATE CLUSTERED INDEX CIDX_X1 ON tablename(field1,field2,field3,field4) ON [PRIMARY]
4.刪除分區方案和功能。
DROP PARTITION SCHEME [PartitionSchemeName_PS]
GO
DROP PARTITION FUNCTION [PartitionfunctionName_PF]
GO
DROP INDEX CIDX_X1 ON tablename