slqserver 主键自动添加聚集索引的问题
Posted 咕咚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了slqserver 主键自动添加聚集索引的问题相关的知识,希望对你有一定的参考价值。
据我们所了解,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 表名 找到数据表中的所有列的约束
这里添加一个基本ef 关于map配置,使用反射进行的configritaon.add info
以上是关于slqserver 主键自动添加聚集索引的问题的主要内容,如果未能解决你的问题,请参考以下文章