我可以在 SQLServer 2012 中的 CREATE TABLE 语句中创建非唯一索引吗? 我找到了一些引用此内容的预发布文档,但是当我尝试时,它不起作用。 看起来这并没有进入版本,但我想得到一个更明确的答案。
该文件表明您可以执行以下操作:
create table rm.test (
t1 int not null,
t2 int,
constraint pk_t1 primary key (t1),
index idx_t2 (t2)
)
但是,它抱怨"索引"。 有没有办法做到这一点,或者我在创建表后是否坚持执行创建索引?
No.
内联索引定义是 SQL Server 2014 的新增定义。
在这种情况下,您可以做
CREATE TABLE rm.test
(
t1 INT NOT NULL CONSTRAINT pk_t1 PRIMARY KEY,
t2 INT,
CONSTRAINT idx_t2 UNIQUE NONCLUSTERED (t2, t1)
)
这实际上创造了同样的东西。
默认情况下,主键是聚集索引,CI 键隐式附加到非唯一非聚集键以保证唯一性。