SQL SERVER:唯一约束说明

李摩根

有人可以简化向列添加唯一约束的解释。创建键索引时,SQL SERVER 是复制行中的所有信息并将其添加到索引中还是仅将列中的数据添加到应用了唯一约束的列中?

我希望我解释得正确。
任何帮助将不胜感激。
李。

编辑**

好吧,我想我明白了吗?

CREATE TABLE dbo.test 
    (
    Id int NOT NULL, 
    Name char(10) NOT NULL UNIQUE
    );

INSERT INTO dbo.test (id, name) VALUES (1, 'Lee')
INSERT INTO dbo.test (id, name) VALUES (2, 'Paul')
INSERT INTO dbo.test (id, name) VALUES (3, 'Adam')
INSERT INTO dbo.test (id, name) VALUES (4, 'Henry')

在聚集索引中,整个表将按如下方式排序

3, Adam
4, Henry
1, Lee
2, Paul

那么,每增加一个 INSERT,服务器就必须根据 name 列对整个表重新排序?

在非聚集索引中,还有另一个“表”存储排序?

帕巴特G

UNIQUE CONSTRAINT将像UNIQUE INDEX. 有2种方式:

  • clustered index这些行以相同的顺序为索引在磁盘上物理地存储。(因此,只有一个聚集索引是可能的)

  • 使用 anon clustered index有第二个列表,该列表具有指向物理行的指针。您可以有许多非聚集索引,尽管每个新索引都会增加写入新记录所需的时间。

  • 如果您同时拥有聚集索引和非聚集索引,那么非聚集索引将指向聚集索引列。

这个“SO”答案将帮助您理解它。

默认情况下,唯一约束和唯一索引将创建一个非聚集索引,如果您没有指定任何不同的索引(如果不存在冲突的聚集索引,PK 将默认创建为 CLUSTERED),但您可以为任何显式指定 CLUSTERED/NONCLUSTERED其中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Unicode字符上的SQL Server唯一约束问题

来自分类Dev

SQL Server中的Unicode唯一约束

来自分类Dev

SQL Server 2008:与列无关的值的唯一约束

来自分类Dev

重复插入和唯一约束SQL Server 2008

来自分类Dev

重复插入和唯一约束SQL Server 2008

来自分类Dev

sql server:唯一约束生成唯一键和唯一索引

来自分类Dev

sql server:唯一约束生成唯一键和唯一索引

来自分类Dev

sql server:唯一约束生成唯一键和唯一索引

来自分类Dev

复合唯一约束SQL

来自分类Dev

违反Oracle SQL唯一约束

来自分类Dev

SQL插入的唯一约束-ORACLE

来自分类Dev

基于SQL Server中祖父母的唯一约束

来自分类Dev

根据SQL中的值添加唯一约束

来自分类Dev

2列中的任何SQL唯一约束

来自分类Dev

2列中任一列的SQL唯一约束

来自分类Dev

如何仅使用SQL唯一约束中DateTime列的年份?

来自分类Dev

插入期间捕获C#中的SQL唯一约束违规的最佳方法

来自分类Dev

SQL-使用唯一约束来删除重复的条目以免在表中输入

来自分类Dev

SQL唯一约束,每个用户最多两个条目

来自分类Dev

SQL:通过外键指定唯一约束并有效查询

来自分类Dev

SQL Server约束以允许“两个唯一”值

来自分类Dev

如何在SQL Server中创建唯一的约束?

来自分类Dev

是否有任何sql数据库没有为唯一约束创建索引?

来自分类Dev

ORA-00001:违反了唯一约束(SQL_IMGMWWSYJIADSBASGSEZBXHAN.COUNTRY_C_ID_PK)ORA-06512:在“ SYS.DBMS_SQL”处,

来自分类Dev

违反唯一约束

来自分类Dev

放下唯一约束

来自分类Dev

如何解决SQL错误:ORA-00001:违反了唯一约束(ALERTS2.PK_UP_MODULE_MASTER)

来自分类Dev

SQL Server表上的唯一分组约束

来自分类Dev

SQL Server表上的唯一分组约束

Related 相关文章

热门标签

归档