我可以在SQLServer 2012的CREATE TABLE语句中创建非唯一索引吗?我发现了一些引用它的预发布文档,但是当我尝试它时,它不起作用。它似乎没有进入发布版本,但我希望得到更明确的答案。
该文件表明你可以做类似的事情:
create table rm.test (
t1 int not null,
t2 int,
constraint pk_t1 primary key (t1),
index idx_t2 (t2)
)
然而,它抱怨“指数”。有没有办法做到这一点,还是我在创建表后坚持创建一个CREATE INDEX?
答案 0 :(得分:3)
没有
内联索引定义是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)
)
虽然actually creates the same thing。
默认情况下,主键是聚簇索引,CI键会隐式附加到非唯一非聚簇键,以保证唯一性。