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

原创 2012年03月22日 20:39:51

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


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)
create clustered index O_IDindex on  T_DetailOrder(O_ID)
 


 

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

【转】关于SQL Server2005主键和聚簇索引设置的问题

小弟想问个问题,在SQL Server 2005上,建立主键的同时就会默认在主键上设置聚簇索引,那么能否在一个字段上设置主键和唯一性索引(Unique),但是把聚簇索引设置到另一个字段上? 举个简单的...

Ms sqlserver2008 R2大数据表的分区实现

如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了。     1、数据库中某个表中的数据很多。很多是什么概念?一万条?两万条?还是十万条、一百万条?这个,我觉得是仁者见...

SQL Server 2008等登录用户只能看到自己的数据库设置办法

默认情况下登录用户除了看到自己拥有管理权限的数据库外。还可以看到其他数据库,在点击打开时会提示没有权限。如下设置可使该用户只能看到自己拥有管理权限的数据库,而看不到其他没有权限的数据库。 (1)取消...

SQL Server 创建约束图解(索引,外键,主键,check,唯一)

SQLServer 中有五种约束, Primary Key 约束、 Foreign Key 约束、 Unique 约束、 Default 约束和 Check 约束,今天使用SQL Server...
  • Aeroleo
  • Aeroleo
  • 2016年03月10日 12:45
  • 436

ASP.net连接SQL Server(学习记录)

使用SqlConnection对象连接SQL Server数据库  我们可以用SqlConnection()构造函数生成一个新的SqlConnection对象。这个函数是重载的,即我们可以调用构造函数...
  • ryanzll
  • ryanzll
  • 2011年04月21日 14:39
  • 1216

SQL Server 2005安装时需要64位的ASP.Net才能安装

SQL Server 2005安装时提示:ASP.Net版本注册要求 32位的ASP.Net已注册,需要64位的ASP.Net才能安装Microsoft Reporting services 2...
  • sxycgxj
  • sxycgxj
  • 2014年11月07日 10:30
  • 1033

C#数据库数据导入导出系列之一 ASP.NET Excel导入Sql Server数据库

C#数据库数据导入导出系列之一 ASP.NET Excel导入Sql Server数据库 在日常的项目中,Excel,Word,txt等格式的数据导入到数据库中是很常见的,我在这里做一下总结 这里...
  • cpcpc
  • cpcpc
  • 2011年12月01日 09:11
  • 16172

ASP.NET操作SQL Server 存储大文件的方法分享

之前做了关于窗体应用程序关于使用SQL Server存储大文件的方法。这里记录的是关于网页操作SQL Server 存储大文件的方法。 方法:      1,将合同内容以文件的方式存放在本地的物理...
  • HK_5788
  • HK_5788
  • 2015年10月05日 23:44
  • 691

在ASP.NET中使用SQL Server作为数据库,DB First方式使用EF(EntityFramework)进行开发和部署时的connectionString

这个问题困扰了我一个下午,项目采用的是VS2015,DB使用的是SQL Server2014. 在项目中生成EF时(*.edmx),因为是本机数据库,当时选择的是windows的连接方式,这样生成了...

在ASP.NET中将图片存储到Sql Server数据库中

1:创建aspx页面。        在这一步,我们需要一个FileUpload控件,同时最重要的是需要将Form的enctype属性设置为multipart/form-data。该FileUp...
  • letIgo
  • letIgo
  • 2011年09月21日 19:47
  • 422
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:<ASP.NET>SQL SERVER 默认主键,默认了聚簇索引
举报原因:
原因补充:

(最多只允许输入30个字)