程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL普通表轉分區表的方法

SQL普通表轉分區表的方法

編輯:關於SqlServer

復制代碼 代碼如下:
CREATE TABLE Sale( 
    [Id] [int] identity(1,1) NOT NULL,          --自動增長
    [Name] [varchar](16) NOT NULL, 
    [SaleTime] [datetime] NOT NULL, 
    constraint [PK_Sale] primary key clustered  --創建主鍵
    ( 
        [Id] ASC 
    ) 

--插入一些記錄
insert Sale ([Name],[SaleTime]) values ('張三','2009-1-1')   
insert Sale ([Name],[SaleTime]) values ('李四','2009-2-1')   
insert Sale ([Name],[SaleTime]) values ('王五','2009-3-1')   
insert Sale ([Name],[SaleTime]) values ('錢六','2010-4-1')   
insert Sale ([Name],[SaleTime]) values ('趙七','2010-5-1')   
insert Sale ([Name],[SaleTime]) values ('張三','2011-6-1')   
insert Sale ([Name],[SaleTime]) values ('李四','2011-7-1')   
insert Sale ([Name],[SaleTime]) values ('王五','2011-8-1')   
insert Sale ([Name],[SaleTime]) values ('錢六','2012-9-1')   
insert Sale ([Name],[SaleTime]) values ('趙七','2012-10-1')   
insert Sale ([Name],[SaleTime]) values ('張三','2012-11-1')   
insert Sale ([Name],[SaleTime]) values ('李四','2013-12-1')   
insert Sale ([Name],[SaleTime]) values ('王五','2014-12-1')


alter table Sale drop constraint PK_Sale 
--創建主鍵,但不設為聚集索引
alter TABLE Sale add constraint PK_Sale primary key nonclustered

    [ID] ASC 
) ON [PRIMARY]    


--創建分區函數
GO
create partition function [pf_Sale](SaleTime) as range left for values(N'2010-5-1T00:00:00.000', N'2012-9-1T00:00:00.000'
GO

--創建分區結構
GO
create partition scheme [pt_Sale] as partition [pf_Sale] TO ([Sale1], [Sale3], [Sale2])
GO

--創建一個使用[pt_Sale]架構
GO
create table [dbo].[AvCache](
[Id] [int] identity(1,1) NOT NULL,          --自動增長
    [Name] [varchar](16) NOT NULL, 
    [SaleTime] [datetime] NOT NULL, 
)on [pt_Sale](SaleTime) --注意這裡使用[pt_Sale]架構,根據SaleTime 分區

-- 查看使用情況
SELECT *, $PARTITION.[pt_Sale](SaleTime)
 FROM dbo.[AvCache]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved