亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL Server如何將普通表轉成分區表

發布時間:2021-08-21 03:25:23 來源:億速云 閱讀:245 作者:chen 欄目:大數據

本篇內容主要講解“SQL Server如何將普通表轉成分區表”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“SQL Server如何將普通表轉成分區表”吧!

    在設計數據庫時,經常沒有考慮到表分區的問題,往往在數據表承重的負擔越來越重時,才會考慮到分區方式,這時,就涉及到如何將普通表轉換成分區表的問題了。

    那么,如何將一個普通表轉換成一個分區表 呢?說到底,只要將該表創建一個聚集索引,并在聚集索引上使用分區方案即可。

    不過,這回說起來簡單,做起來就復雜了一點。還是接著上面的例子,我們先使用以下SQL語句將原有的Sale表刪除。

--刪除原來的數據表  

drop table Sale  

然后使用以下SQL語句創建一個新的普通表,并在這個表里插入一些數據。

--新建一個普通的數據表  

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')    

    使用以上代碼創建的表是普通表,我們來看一下表的屬性,如下圖所示。

SQL Server如何將普通表轉成分區表

    在以上代碼中,我們可以看出,這個表擁有一般普通表的特性——有主鍵,同時這個主鍵還是聚集索引。前面說過,分區表是以某個字段為分區條件,所以,除了這個字段以外的其他字段,是不能創建聚集索引的。因此,要想將普通表轉換成分區表,就必須要先刪除聚集索引,然后再創建一個新的聚集索引,在該聚集索引中使用分區方案。

    可惜的是,在SQL Server中,如果一個字段既是主鍵又是聚集索引時,并不能僅僅刪除聚集索引。因此,我們只能將整個主鍵刪除,然后重新創建一個主鍵,只是在創建主鍵時,不將其設為聚集索引,如以下代碼所示:

--刪掉主鍵  

ALTER TABLE Sale DROP constraint PK_Sale  

--創建主鍵,但不設為聚集索引  

ALTER TABLE Sale ADD CONSTRAINT PK_Sale PRIMARY KEY NONCLUSTERED  

(  

    [ID] ASC  

) ON [PRIMARY]  

    在重新非聚集主鍵之后,就可以為表創建一個新的聚集索引,并且在這個聚集索引中使用分區方案,如以下代碼所示:

--創建一個新的聚集索引,在該聚集索引中使用分區方案  

CREATE CLUSTERED INDEX CT_Sale ON Sale([SaleTime])  

ON partschSale([SaleTime])  

    為表創建了一個使用分區方案的聚集索引之后,該表就變成了一個分區表,查看其屬性,如下圖所示。

SQL Server如何將普通表轉成分區表

    我們可以再一次使用以下代碼來看看每個分區表中的記錄數。

--統計所有分區表中的記錄總數    

select $PARTITION.partfunSale(SaleTime) as 分區編號,count(id) as 記錄數 from Sale group by $PARTITION.partfunSale(SaleTime)    

    以上代碼的運行結果如下所示,說明在將普通表轉換成分區表之后,數據不但沒有丟失,而且還自動地放在了它應在的分區表中了。

SQL Server如何將普通表轉成分區表

到此,相信大家對“SQL Server如何將普通表轉成分區表”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嫩江县| 汶上县| 兴海县| 麻江县| 上高县| 康乐县| 兴城市| 抚宁县| 贡嘎县| 新邵县| 鞍山市| 喀什市| 南部县| 绩溪县| 连州市| 龙门县| 阿尔山市| 津南区| 昭平县| 马关县| 象山县| 梅州市| 惠东县| 水富县| 武邑县| 永嘉县| 诸暨市| 桦川县| 莱州市| 江陵县| 浙江省| 襄汾县| 乐都县| 西华县| 辰溪县| 青阳县| 洱源县| 永康市| 孟连| 浦北县| 女性|