我正在SQL Server 2008中创建一个数据库,
CREATE TABLE Users
(
U_Id INT NOT NULL
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Email VARCHAR(200)
Password VARCHAR(50)
)
我想让U_Id成为主键。 我想问一下
之间有什么区别 CONSTRAINT pk_UserID PRIMARY KEY (U_Id)
此
CONSTRAINT pk_UserID PRIMARY KEY CLUSTERED (U_Id)
和这个
CONSTRAINT pk_UserID PRIMARY KEY NONCLUSTERED (U_Id)
何时使用?
我读了一些文章,但我还不清楚。有人能给我一个快速解释吗?
答案 0 :(得分:40)
以下声明:
CONSTRAINT pk_UserID PRIMARY KEY (U_Id)
与此相同:
CONSTRAINT pk_UserID PRIMARY KEY CLUSTERED (U_Id)
您只能通过一个索引排序表数据物理性,默认情况下,索引是用于主键的索引(主键唯一约束始终由索引支持) )。
如果您想根据其他索引保留要存储的表数据的顺序,那么您应该使用以下命令创建主键:
CONSTRAINT pk_UserID PRIMARY KEY NONCLUSTERED (U_Id)
然后使用:
创建聚簇索引CREATE CLUSTERED INDEX ix_Email ON Users (Email);