Автоматический прирост первичного ключа в 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 или наоборот, а затем импортировать данные обратно.
Я знаю, что это болезненный процесс, но я считаю, что нет альтернативы, кроме использования последовательности, упомянутой в этом сообщении.