SQLServer 2012:表创建期间的非唯一索引定义?

时间:2014-02-22 12:53:03

标签: sql-server indexing sql-server-2012

我可以在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?

1 个答案:

答案 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键会隐式附加到非唯一非聚簇键,以保证唯一性。