码迷,mamicode.com
首页 > 其他好文 > 详细

slqserver 主键自动添加聚集索引的问题

时间:2017-12-06 16:11:22      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:serve   使用   enc   www.   htm   更改   主键约束   uniq   ble   

据我们所了解,sqlserver 在添加主键的时候,会自动将我宝贵的聚集索引添加在我们的ID 上,然后,有些时候,我们想添加在

常用的搜索的字段上,这个时候,如果主键已经创建了;我们可以使用下面的方法来进行更改:

 

--create index index_索引名 on 表名(列名)

sp_helpindex Category --查看表的索引

exec sp_helpconstraint Category --查看表的约束

Alter Table Category
DROP constraint [CATEGORY_PRIMARY_KEY_ID]  --删除约束

Create CLUSTERED Index Category_CLUSTERED_Name --创建聚集索引
on Category(Name)

DROP INDEX Category.Category_CLUSTERED_Name    --删除索引

--然后我们再添加主键;
ALTER TABLE CATEGORY
ADD CONSTRAINT CATEGORY_PRIMARY_KEY_ID PRIMARY KEY(CategoryId)

 

那么如何在我们创建主键的时候,不自动添加我们的聚集索引呢;

 

答案是这样:

 

USE [Test]
  GO
  CREATE TABLE A
  ( 
    ID INT PRIMARY KEY CLUSTERED  --聚集索引
  )
  
  
  ---------------------------------
 USE [Test]
 GO
  CREATE TABLE B
 ( 
   ID INT PRIMARY KEY NONCLUSTERED  --非聚集索引
 )
 
 
-- DROP TABLE [A]
 --DROP TABLE [B]

 sp_helpindex A --查看表的索引
 GO
 sp_helpindex B --查看表的索引

 

https://www.cnblogs.com/lyhabc/archive/2013/02/09/2909621.html

 

附带:sqlserver 中约束类型

和常见操作:

有这几种约束

NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT

 

---添加主键约束
alter table 表名
add constraint 约束名 primary key (主键)

---添加唯一约束
alter table 表名
add constraint 约束名 unique (字段)

---添加默认约束
alter table 表名
add constraint 约束名 default (‘默认内容‘) for 字段

--添加检查check约束,要求字段只能在1到100之间
alter table 表名
add constraint 约束名 check (字段 between 1 and 100 )

---添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo)
alter table 从表
add constraint 约束名
foreign key(关联字段) references 主表(关联字段)
GO

sql server中删除约束的语句是:

alter table 表名 drop constraint 约束名

sp_helpconstraint 表名 找到数据表中的所有列的约束

 

slqserver 主键自动添加聚集索引的问题

标签:serve   使用   enc   www.   htm   更改   主键约束   uniq   ble   

原文地址:http://www.cnblogs.com/mc67/p/7992893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!