2010-04-22 6 views
14
Create table FavoriteDish  
( 
FavID int identity (1,1) primary key not null,  
DishID int references Dishes(DishID) not null ,  
CelebrityName nvarchar(100) nonclustered not null  
) 

Это результат Incorrect syntax near the keyword 'nonclustered'. Я ссылался на справку MSDN для синтаксиса create table. Я не уверен, что здесь неправильно.Как создать некластеризованный индекс в Создать таблицу?

+0

Возможный дубликат [Создать некластерный не уникальный индекс в пределах CREATE TABLE заявление с SQL Server] (http://stackoverflow.com/questions/6193293/create-a-nonclustered-non-unique-index -within-the-create-table-statement-with-sq) – AaronLS

+0

@AaronLS Этот конкретный вопрос задается первым значением раньше, чем вопрос, на который вы указываете. Это означает, что тот, который вы указываете, можно назвать дубликат этого, а не наоборот –

ответ

16

Помощь в книгах онлайн действительно упоминает ключевое слово CLUSTERED, но это относится только к ограничениям UNIQUE или PRIMARY KEY. Оба этих ограничения создают индекс, и вы можете указать, должен ли этот индекс быть кластеризованным или некластеризованным.

Вы не можете использовать этот синтаксис для создания стандартного некластеризованного индекса.

Create table FavoriteDish  
( 
FavID int identity (1,1) primary key not null,  
DishID int references Dishes(DishID) not null ,  
CelebrityName nvarchar(100) constraint ux_CelebrityName unique NONCLUSTERED not null  
) 
+0

aha, имеет смысл. тогда это должно быть предложение о msdn. –

+5

Не забудьте добавить имя собственного соглашения по индексу PK_ для первичных ключей UK_ для уникальных ключей IX_ для не сгруппированных неуникальных индексов ux_ для уникальных индексов Все мое имя индекса принять форма <индекс или тип ключа> _

_ _ _ mario

10

Erase это некластеризованным ключевое слово и использовать CREATE INDEX заявление, чтобы добавить индекс к этой таблице, документация этого можно прочитать в:

http://msdn.microsoft.com/en-us/library/ms188783.aspx

Синтаксис здесь:

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON <object> (column [ ASC | DESC ] [ ,...n ]) 
    [ INCLUDE (column_name [ ,...n ]) ] 
    [ WHERE <filter_predicate> ] 
    [ WITH (<relational_index_option> [ ,...n ]) ] 
    [ ON { partition_scheme_name (column_name) 
     | filegroup_name 
     | default 
     } 
    ] 
    [ FILESTREAM_ON { filestream_filegroup_name | partition_scheme_name | "NULL" } ] 

[ ; ] 

Код здесь :

CREATE NONCLUSTERED INDEX index_clustered ON FavoriteDish(CelebrityName asc) 
+4

Svisstack, Спасибо, я знаю об этом, но могу ли я не создавать его в инструкции create table. Как сказано в синтаксисе Create Table, можно создать индекс NON-UNIQUE NONCLUSTERED, используя оператор Create Table –

+0

. См. Здесь: http://stackoverflow.com/questions/6193293/create-a-nonclustered-non-unique-index -with-the-create-table-statement-with-sq –

Смежные вопросы