前提是你的表上有聚焦索引(一般主鍵預設就是聚焦索引)
而且改的時候要把普通索引刪除掉(因為改是通過刪除聚焦索引實現資料切換的, 所以不刪除普通索引會導致普通索引被重建, 而切換到分割槽表再建立聚焦索引的時候又會導致普通索引重建一次, 所以刪除普通索引再重建可以避免兩次重建普通索引)
use tempdb
go-- 測試表
create table dbo.tb(
id int,
constraint pk_id primary key clustered(
id))
insert dbo.tb
select 1 union all
select 10
go-- 切換為分割槽表
-- 分割槽函式
create partition function pf_test(int)
as range left
for values(5)
-- 分割槽架構
create partition scheme ps_test
as partition pf_test
all to(
[primary])
-- 切換到分割槽表
alter table dbo.tb
drop constraint pk_id
with(
move to ps_test(id))
上面的示例建立測試表 dbo.tb , 並切換到分割槽表
切換完成後, 可以查詢 dbo.tb, 並檢查其執行計畫來確定是否使用了分割槽資訊, 以此來確定是否正確切換到了分割槽表
最後可以用下面的語句刪除測試
-- 刪除測試
drop table dbo.tb
drop partition scheme ps_test
drop partition function pf_test
分割槽鍵列必須是主鍵的一部分,聯機幫助上有說明的
是【建立分布式分割槽檢視】中的一句話吧,而不是說建立分割槽表所用的分割槽列一定要是主鍵的一部分
在(create)建立分割槽表時,對分割槽列要求很低,但是便於效能優化,最好是聚集索引的一部分。
如果alter將已有表變為分割槽表的話,應該是將分割槽列加入到聚集索引中
如果是分割槽索引:分割槽列包含在聚集索引/唯一約束/唯一索引的鍵列中
sql server 2005中的output子句
今天看了下sql server 2005中的output子句,以使您可以從修改語句 insert update delete 中將資料返回到表變數中。帶結果的 dml 的有用方案包括清除和存檔 訊息處理應用程式以及其他方案。這一新的 output 子句的語法為 output into table v...
With在sql server 2005中的用法
with在msdn中的講解,可以參考鏈結 1 2 建立錶值變數型別 3 4create type ty newareagoods as table 5 areaid int notnull,6 goodsid int notnull 7 8 9 創鍵返回今天 的資料 10 根據有 的地區獲取參 11...
sql server 2005中的output子句
今天看了下sql server 2005中的output子句,以使您可以從修改語句 insert update delete 中將資料返回到表變數中。帶結果的 dml 的有用方案包括清除和存檔 訊息處理應用程式以及其他方案。這一新的 output 子句的語法為 output into table v...