Автоматический прирост первичного ключа в SQL Server Management Studio 2012

Как автоматически увеличить первичный ключ в таблице базы данных SQL Server, я просмотрел форум, но не вижу, как это сделать.

Я просмотрел свойства, но не вижу опции, я видел ответ, когда вы переходите в свойство спецификации Identity и устанавливаете его в yes и устанавливаете значение Identity в 1, но этот раздел недоступен и я не могу изменить "нет" на "да".

Должен быть простой способ сделать это, но я не могу его найти.

Ответ 1

Убедитесь, что тип данных столбца ключа int, а затем задание идентификатора вручную, так как изображение показывает

enter image description here

Или просто запустите этот код

-- ID is the name of the  [to be] identity column
ALTER TABLE [yourTable] DROP COLUMN ID 
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)

код будет запущен, если ID не является единственным столбцом в таблице

ссылка на изображение fifo's

Ответ 2

Когда вы создаете таблицу, вы можете создать столбец IDENTITY следующим образом:

CREATE TABLE (
  ID_column INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  ...
);

Свойство IDENTITY будет автоматически увеличивать столбец вверх от номера 1. (Обратите внимание, что тип данных столбца должен быть целым числом.) Если вы хотите добавить это в существующий столбец, используйте ALTER TABLE.

Edit:
Протестировано немного, и я не могу найти способ изменить свойства Identity через окно "Свойства столбца" для разных таблиц. Я думаю, если вы хотите сделать столбец столбец идентификатора, вам нужно использовать команду ALTER TABLE.

Ответ 3

Вам нужно развернуть раздел "Идентификация", чтобы выставить инкремент и семя.

enter image description here

Изменить: я предположил, что у вас будет целочисленный тип данных, а не char (10). Что разумно, я бы сказал и действительно, когда я разместил этот ответ

Ответ 4

Разверните свою базу данных, разверните таблицу правой кнопкой мыши по таблице и выберите дизайн из раскрывающегося списка. ITlooks like this

Теперь перейдите Свойства столбца ниже, прокрутите вниз и найдите Спецификация удостоверений, разверните его, и вы найдете Идентификация. Да. Теперь выберите Приращение личности, справа от него, укажите значение, которое вы хотите увеличить. enter image description here

Ответ 5

Когда вы используете Data Type: int, вы можете выбрать строку, которую хотите получить автоинкремент, и перейти к тегу свойств столбца. Там вы можете установить личность "да". Исходное значение для автоинкремента также можно редактировать там. Надеюсь, что смогу помочь;)

Ответ 6

Возможно, мне что-то не хватает, но почему это не работает с объектом SEQUENCE? Разве это не то, что вы ищете?

Пример:

CREATE SCHEMA blah.
GO

CREATE SEQUENCE blah.blahsequence
START WITH 1
INCREMENT BY 1
NO CYCLE;

CREATE TABLE blah.de_blah_blah
(numbers bigint PRIMARY KEY NOT NULL
......etc

При обращении к скенну в команде INSERT просто используйте:

NEXT VALUE FOR blah.blahsequence

Дополнительная информация и параметры ПОСЛЕДОВАТЕЛЬНОСТЬ

Ответ 7

Будьте осторожны, если вы хотите, чтобы элементы ID были contigius или нет. Поскольку идентификатор SQLSERVER может прыгать на 1000.

Экзамен: перед перезагрузкой ID = 11 после перезапуска вы вставляете новую строку в таблицу, тогда идентификатор будет 1012.

Ответ 8

Если таблица уже заполнена, невозможно изменить столбец в столбец IDENTITY или преобразовать его в столбец без идентификатора. Вам нужно будет экспортировать все данные, затем вы можете изменить тип столбца на IDENTITY или наоборот, а затем импортировать данные обратно. Я знаю, что это болезненный процесс, но я считаю, что нет альтернативы, кроме использования последовательности, упомянутой в этом сообщении.