是否可以只使用一个这样的SQL语句创建索引(没有外键而不是唯一的)和表(不是表变量)。
CREATE TABLE tabind
(
id int identity(1,1) primary key ,
birthday datetime default getdate() ,
some_id int INDEX index_name, /*this line causes a sql server error*/
name nvarchar(100)
);
实际上相当于这句话:
CREATE TABLE tabind
(
id int identity(1,1) primary key ,
birthday datetime default getdate() ,
some_id int ,
name nvarchar(100)
);
create index idx_tabind on tabind(some_id);
我的SQL Server版本是2012年。
感谢。
答案 0 :(得分:5)
不,在线索引声明仅限2014年。
这实际上创建了相同的索引。
CREATE TABLE tabind
(
id INT IDENTITY(1, 1) PRIMARY KEY,
birthday DATETIME DEFAULT GETDATE(),
some_id INT,
NAME NVARCHAR(100),
CONSTRAINT index_name UNIQUE (NAME, id)
);
SQL Server静默makes non unique non clustered indexes unique通过添加聚集索引键(在您的情况下由PK隐式创建)