Est-il possible de créer des index (pas de foreign keys et non uniques) et une table (pas une variable de table) avec une seule instruction SQL comme celle-ci.
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) );
En fait l'équivalent de ces déclarations:
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);
Ma version de SQL Server est 2012.
Merci.
Non, la déclaration d'index en ligne est 2014 seulement.
Cela crée en fait le même index.
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 rend les index non clusterisés non uniques uniques en ajoutant la key d'index clusterisée (implicitement créée par le PK dans votre cas)