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

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