Каков эквивалентный синтаксис SQL Server, который я могу использовать для
INDEX (parent_id),
INDEX (forum_id),
INDEX (user_id),
INDEX (date_entered)
Глядя в руководство , я замечаю форму BNF.
<column_index> ::=
INDEX index_name [ CLUSTERED | NONCLUSTERED ]
[ WITH ( <index_option> [ ,... n ] ) ]
[ ON { partition_scheme_name (column_name )
| filegroup_name
| default
}
]
[ FILESTREAM_ON { filestream_filegroup_name | partition_scheme_name | "NULL" } ]
Таким образом, SQL Server 2008+ также должен поддерживать ключевое слово INDEX
в операторе CREATE TABLE
.
Но действительный синтаксис для ключевого слова INDEX
использует
CREATE TABLE test (
id INT
, INDEX index_name (id)
);
Но есть и другие неправильные вещи, такие как типы данных или ключевые слова.
Правильный код SQL для сервера SQL:
CREATE TABLE messages (
message_id INT identity(1, 1),
parent_id INT NOT NULL DEFAULT 0,
forum_id TINYINT NOT NULL,
user_id INT NOT NULL,
subject VARCHAR(100) NOT NULL,
body TEXT NOT NULL,
date_entered DATETIME NOT NULL,
PRIMARY KEY (message_id),
INDEX parent_id (parent_id),
INDEX forum_id (forum_id),
INDEX user_id (user_id),
INDEX date_entered (date_entered)
);