Создать SQL-идентификатор в качестве первичного ключа?
create table ImagenesUsuario
{
idImagen int primary key not null IDENTITY
}
Это не работает. Как я могу это сделать?
Ответ 1
Простое изменение синтаксиса - это все, что необходимо:
create table ImagenesUsuario (
idImagen int not null identity(1,1) primary key
)
Явным образом используя ключевое слово "ограничение", вы можете указать ограничение первичного ключа для определенного имени, а не в зависимости от SQL Server, чтобы автоматически назначить имя:
create table ImagenesUsuario (
idImagen int not null identity(1,1) constraint pk_ImagenesUsario primary key
)
Добавьте ключевое слово "CLUSTERED", если это имеет наибольшее значение, основанное на использовании вами таблицы (т.е. баланс поиска для определенного idImagen и количество записи перевешивают преимущества кластеризации таблицы каким-либо другим индексом).
Ответ 2
Это похоже на скрипты, которые мы генерируем в нашей команде. Сначала создайте таблицу, затем примените pk/fk и другие ограничения.
CREATE TABLE [dbo].[ImagenesUsuario] (
[idImagen] [int] IDENTITY (1, 1) NOT NULL
)
ALTER TABLE [dbo].[ImagenesUsuario] ADD
CONSTRAINT [PK_ImagenesUsuario] PRIMARY KEY CLUSTERED
(
[idImagen]
) ON [PRIMARY]
Ответ 3
Если вы используете T-SQL, единственное, что неправильно с вашим кодом, это то, что вы использовали фигурные скобки {} вместо круглых скобок ().
PS: Оба IDENTITY и PRIMARY KEY подразумевают NOT NULL, поэтому вы можете опустить это, если хотите.