<ASP.NET>SQL SERVER 默认主键,默认了聚簇索引

从我的网易博客移动。。。。。


SQL SERVER 如果在建表的时候建立了主键,没有建立聚簇索引,那么久默认了主键是聚簇索引。坑爹啊。这样,这么重要的聚簇索引就到了主键上了。要修改麻烦死了。。

研究了半天,发现有两种方法:


首先说下我建立的表:

 

  

订单详情 T_DetailOrder

字段名称

说明

数据类型

主键

DO_ID

主键

Bigint

O_ID

订单号

Bigint

 

Mname

菜名

Nvarchar(20)

 

Mprice

价格

Float

 

 

 

 

 

为订单详情做O_ID的聚簇索引。

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

 

删除表后重新建立表: 

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



第二种方法:
由于有主键,默认主键为聚簇索引,删除主键上的聚簇索引失败。只有先删除主键,再建立主键,然后建立聚簇索引。

 

获得表的主键 :exec   sp_pkeys  T_DetailOrder,得到主键为PK_T_DetailOrder

删除主键:alter table T_DetailOrder DROP  CONSTRAINT PK_T_DetailOrder

建立主键和聚簇索引:



 

这样,就建立好O_ID的索引了。。坑爹的SQL SERVER 。。。。

posted on 2012-03-22 20:39  fengyun1989  阅读(365)  评论(0编辑  收藏  举报