Автоинкрементный первичный ключ в таблицах SQL - PullRequest
56 голосов
/ 29 июля 2010

С помощью графического интерфейса Sql Express Management Studio 2008 (без кодирования), как я могу сделать первичный ключ с автоинкрементом?

Позвольте мне объяснить: есть таблица, в которой есть столбец с именем "id" иэлементы этого столбца установлены как первичные ключи.Я хочу, чтобы этот столбец автоматически увеличивался, но как?

Cheers

Ответы [ 6 ]

106 голосов
/ 29 июля 2010
  1. Предположительно, вы находитесь в дизайне стола.Если нет: щелкните правой кнопкой мыши имя таблицы - « Design ».
  2. Щелкните по нужному столбцу.
  3. В разделе " Свойства столбца " (внизу) выделите раздел " Спецификация идентификации ", развернитезатем переключите « (есть личность) » на « Да ».

enter image description here

10 голосов
/ 29 июля 2010

Щелкните правой кнопкой мыши по таблице в SSMS, «спроектируйте» ее и щелкните по столбцу id. В свойствах установите идентификатор, который будет заполнен @, например, 1 и иметь приращение 1 - сохраните, и все готово.

9 голосов
/ 18 сентября 2014

Хотя следующее не является способом сделать это в GUI, но вы можете получить автоинкремент, просто используя тип данных IDENTITY (начало, приращение):

CREATE TABLE "dbo"."TableName"
(
   id int IDENTITY(1,1) PRIMARY KEY NOT NULL,
   name varchar(20),
);

оператор вставки должен перечислять все столбцы, кроме столбца id(будет заполнено автоинкрементным значением):

INSERT INTO "dbo"."TableName" (name) VALUES ('alpha');
INSERT INTO "dbo"."TableName" (name) VALUES ('beta');

, а результат

SELECT id, name FROM "dbo"."TableName";

будет

id    name
--------------------------
1     alpha
2     beta
6 голосов
/ 05 ноября 2013

для тех, у кого возникла проблема, по-прежнему не позволяющая сохранить данные после изменения в соответствии с приведенным ниже ответом, выполните следующие действия:

Инструменты -> Параметры -> Дизайнеры -> Дизайнеры таблиц и баз данных -> Снимите флажок "Запретить сохранение изменений, требующих повторного создания таблицы" -> ОК

и попробуйте сохранить как должно сейчас работать

6 голосов
/ 29 июля 2010

У меня нет Express Management Studio на этом компьютере, поэтому я использую память. Я думаю, что вам нужно установить столбец как «IDENTITY», и в свойствах должно быть [+], чтобы вы могли развернуть его, и установите для автоматического увеличения значение true.

0 голосов
/ 18 декабря 2013

Я думаю, что есть способ сделать это на этапе определения, подобный этому

создать таблицу employee (id int identity, name varchar (50), primary key (id)) .. Я пытаюсь увидетьесли есть способ изменить существующую таблицу и сделать столбец идентификатором, который теоретически не представляется возможным (поскольку существующие значения могут нуждаться в модификации)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...