(id) должен быть в скобках.Как ПРОВЕРИТЬ условия и столбцы FOREIGN KEY.В одной строке:
create table A (id int, primary key nonclustered (id)) --ok
create table A (id int, primary key nonclustered id) --not ok
Примечание: запятая подразумевает «ограничение уровня таблицы».Другой синтаксис без запятая означает «ограничение уровня столбца».Конечно, PK для каждой таблицы, у вас могут быть составные ключи, которые не могут быть определены на уровне столбца:
create table A (
id int,
something datetime,
primary key clustered (id,something)
)
Примечание: я всегда буду явно указывать свои ограничения для имен.В противном случае SQL Server генерирует шестнадцатеричный вид.А также явное определение обнуляемости и стиля индекса.Поэтому я написал бы следующее:
create table A (
id int NOT NULL,
something datetime NOT NULL,
CONSTRAINT PK_A PRIMARY KEY CLUSTERED (id,something)
)
Наконец, согласно CREATE TABLE , это нормально и работает на моем экземпляре SQL Server 2008:
create table c(id int primary key nonclustered)