我有一张桌子'X'并做了以下
这3个步骤创建了我拥有的数据的4个逻辑分区。
我的问题是,如何将此分区恢复到原始状态?
答案 0 :(得分:23)
经过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
/ *删除您创建的虚拟聚簇索引,因为它仅用于从分区方案中释放表* / 答案 1 :(得分:0)
我发现应该在Storm给出的答案中添加一些额外的步骤,因为在删除聚集索引之前有一些像......之类的,需要删除发布,因为它不会允许聚簇索引获取在此之前删除并且在删除之后需要重新创建分区方案和分区功能,并且还需要再次启动发布。
注意:我使用的是SQL 2012
主键通常是最常用的聚簇约束,因此无论何时使用主键,请考虑这些步骤也适用于聚簇约束。此外,PS =分区方案,PF =分区函数。
一些准备步骤:
以上所有,使用SQL Management Studio"生成脚本"点击右键。然后选择drop and create。
现在,一切准备就绪
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