Подтвердить что ты не робот

Создать SQL-идентификатор в качестве первичного ключа?

create table ImagenesUsuario
{
    idImagen int primary key not null IDENTITY
}

Это не работает. Как я могу это сделать?

4b9b3361

Ответ 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, поэтому вы можете опустить это, если хотите.