标签: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 表名 找到数据表中的所有列的约束
标签:serve 使用 enc www. htm 更改 主键约束 uniq ble
原文地址:http://www.cnblogs.com/mc67/p/7992893.html