Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在列上创建唯一约束是否会自动创建索引?_Sql Server_Sql Server 2005 - Fatal编程技术网

Sql server 在列上创建唯一约束是否会自动创建索引?

Sql server 在列上创建唯一约束是否会自动创建索引?,sql-server,sql-server-2005,Sql Server,Sql Server 2005,考虑这一独特的约束: ALTER TABLE Posts ADD CONSTRAINT UQ_Posts_Name UNIQUE (Name); 它会自动在Name列上创建索引吗?是的。请参见是的,绝对正确。唯一约束创建唯一索引。您也可以在其上创建单独的索引。这篇文章很好地描述了这些差异。是的,只是补充一下。。创建主键会自动创建聚集索引 编辑: 我错了。。。在列文的评论之后: 创建主键约束时,如果表上的聚集索引不存在且未指定唯一的非聚集索引,则会自动在列上创建唯一的聚集索引。主键列不能允许空值

考虑这一独特的约束:

ALTER TABLE Posts
ADD CONSTRAINT UQ_Posts_Name
UNIQUE (Name);

它会自动在
Name
列上创建索引吗?

是的。请参见

是的,绝对正确。唯一约束创建唯一索引。

您也可以在其上创建单独的索引。这篇文章很好地描述了这些差异。

是的,只是补充一下。。创建主键会自动创建聚集索引

编辑: 我错了。。。在列文的评论之后:

创建主键约束时,如果表上的聚集索引不存在且未指定唯一的非聚集索引,则会自动在列上创建唯一的聚集索引。主键列不能允许空值


创建主键不会自动创建聚集索引。您是对的-当您创建主键约束时,如果表上的聚集索引不存在,并且您没有指定唯一的非聚集索引,则会自动在列上创建唯一的聚集索引。主键列不能允许空值。