zl程序教程

您现在的位置是:首页 >  后端

当前栏目

SQL普通表转分区表的方法

方法SQL 普通 分区表 表转
2023-06-13 09:14:48 时间

复制代码代码如下:


CREATETABLESale( 
   [Id][int]identity(1,1)NOTNULL,         --自动增长
   [Name][varchar](16)NOTNULL, 
   [SaleTime][datetime]NOTNULL, 
   constraint[PK_Sale]primarykeyclustered --创建主键
   ( 
       [Id]ASC 
   ) 

--插入一些记录
insertSale([Name],[SaleTime])values("张三","2009-1-1")   
insertSale([Name],[SaleTime])values("李四","2009-2-1")   
insertSale([Name],[SaleTime])values("王五","2009-3-1")   
insertSale([Name],[SaleTime])values("钱六","2010-4-1")   
insertSale([Name],[SaleTime])values("赵七","2010-5-1")   
insertSale([Name],[SaleTime])values("张三","2011-6-1")   
insertSale([Name],[SaleTime])values("李四","2011-7-1")   
insertSale([Name],[SaleTime])values("王五","2011-8-1")   
insertSale([Name],[SaleTime])values("钱六","2012-9-1")   
insertSale([Name],[SaleTime])values("赵七","2012-10-1")   
insertSale([Name],[SaleTime])values("张三","2012-11-1")   
insertSale([Name],[SaleTime])values("李四","2013-12-1")   
insertSale([Name],[SaleTime])values("王五","2014-12-1")


altertableSaledropconstraintPK_Sale 
--创建主键,但不设为聚集索引
alterTABLESaleaddconstraintPK_Saleprimarykeynonclustered

   [ID]ASC 
)ON[PRIMARY]    


--创建分区函数
GO
createpartitionfunction[pf_Sale](SaleTime)asrangeleftforvalues(N"2010-5-1T00:00:00.000",N"2012-9-1T00:00:00.000"
GO

--创建分区结构
GO
createpartitionscheme[pt_Sale]aspartition[pf_Sale]TO([Sale1],[Sale3],[Sale2])
GO

--创建一个使用[pt_Sale]架构
GO
createtable[dbo].[AvCache](
[Id][int]identity(1,1)NOTNULL,         --自动增长
   [Name][varchar](16)NOTNULL, 
   [SaleTime][datetime]NOTNULL, 
)on[pt_Sale](SaleTime)--注意这里使用[pt_Sale]架构,根据SaleTime分区

--查看使用情况
SELECT*,$PARTITION.[pt_Sale](SaleTime)
 FROMdbo.[AvCache]