SQL SERVER 預設主鍵,預設了聚簇索引

來源:互聯網
上載者:User

從我的網易部落格移動。。。。。

SQL SERVER 如果在建表的時候建立了主鍵,沒有建立聚簇索引,那麼久預設了主鍵是聚簇索引。坑爹啊。這樣,這麼重要的聚簇索引就到了主鍵上了。要修改麻煩死了。。

研究了半天,發現有兩種方法:


首先說下我建立的表:

 

  

訂單詳情 T_DetailOrder

欄位名稱

說明

資料類型

主鍵

DO_ID

主鍵

Bigint

O_ID

訂單號

Bigint

 

Mname

菜名

Nvarchar(20)

 

Mprice

價格

Float

 

 

 

 

 

為訂單詳情做O_ID的聚簇索引。

第一種建聚簇索引的方法:

 

刪除表後重建立立表: 

直接在建立的時候建立聚簇索引

create table T_DetailOrder ( DO_ID Bigint identity, O_ID Bigint, Mname Nvarchar(20), Mpirce float, primary key nonclustered (DO_ID), unique clustered (O_ID) )

第二種方法:
由於有主鍵,預設主鍵為聚簇索引,刪除主鍵上的聚簇索引失敗。只有先刪除主鍵,再建立主鍵,然後建立聚簇索引。

 

獲得表的主鍵 :exec   sp_pkeys  T_DetailOrder,得到主鍵為PK_T_DetailOrder

刪除主鍵:alter table T_DetailOrder DROP  CONSTRAINT PK_T_DetailOrder

建立主鍵和聚簇索引:

Alter table T_DetailOrder add CONSTRAINT PK_T_DetailOrder PRIMARY KEY nonclustered (DO_ID)<br />create clustered index O_IDindex on T_DetailOrder(O_ID)<br />

 

這樣,就建立好O_ID的索引了。。坑爹的SQL SERVER 。。。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.