Как я в таблице базы данных, я имел взгляд через форум , но не может видеть , как.auto increment
primary key
SQL Server
Я посмотрел свойства, но не вижу опции, я видел ответ, в котором вы переходите к Identity
свойству спецификации и устанавливаете его в значение да, а Identity increment
в 1 указываете значение, но этот раздел отображается серым цветом, и я не могу изменить нет да да
Должен быть простой способ сделать это, но я не могу его найти.
sql-server
sql-server-2012
identity
Ledgemonkey
источник
источник
Ответы:
Убедитесь, что в столбце «Ключ» указан тип данных,
int
а затем задайте идентичность вручную, как показано на рисунке.Или просто запустите этот код
код будет работать, если
ID
не единственный столбец в таблицессылка на изображение fifo's
источник
IDENTITY
свойство может быть применено к любым числовым типам данных (так что это может бытьtinyint
,smallint
,int
,bigint
,numeric
,decimal
), единственным ограничением является то , что он не может представлять дробное число (так что не может бытьfloat
илиreal
, ниnumeric
илиdecimal
с ненулевой шкалой ) и ofc, спецификация идентичности должна быть совместима с выбранным типом данных.Когда вы создаете таблицу, вы можете создать
IDENTITY
столбец следующим образом:IDENTITY
Свойство будет автоинкрементный столбец вверх из числа 1. (Обратите внимание , что тип данных столбца должен быть целым числом.) Если вы хотите добавить это к существующему колонку, используйтеALTER TABLE
команду.Редактировать:
немного протестировано, и я не могу найти способ изменить свойства Identity через окно Column Properties для различных таблиц. Я думаю, если вы хотите сделать столбец идентичным столбцом, вы должны использовать
ALTER TABLE
команду.источник
Вы должны расширить раздел «Идентичность», чтобы раскрыть инкремент и начальное число.
Изменить: я предполагал, что у вас будет целочисленный тип данных, а не char (10). Какой разумный я бы сказал и действительный, когда я отправил этот ответ
источник
yes
серое, как естьchar(10)
(из только что опубликованного комментария)BookID int primary key identity
я не указывал и начальное, и приращение, это хорошая практика? потому что я вижу документацию в MSDN. Если ничего не указано, по умолчанию используется значение (1,1).Разверните свою базу данных, разверните таблицу, щелкните правой кнопкой мыши таблицу и выберите дизайн из выпадающего списка.
Теперь перейдите в свойства столбца под ним, прокрутите вниз и найдите Identity Specification , разверните ее, и вы увидите, Is Identity делает ее Да. Теперь выберите Идентификационный прирост прямо под ним и укажите значение, которое вы хотите увеличить .
источник
Возможно, я что-то упускаю, но почему это не работает с объектом SEQUENCE? Разве это не то, что вы ищете?
Пример:
При ссылке на последовательность в скажем команду INSERT просто используйте:
Больше информации и опций для ПОСЛЕДОВАТЕЛЬНОСТИ
источник
IDENTITY
иногда скачки оставляют пропуски, тогда он снова заполняет эти пробелы. ТакIDENTITY
что не гарантирует ВСЕГДА условиеКогда вы используете тип данных: int, вы можете выбрать строку, которую хотите автоинкремментировать, и перейти к тегу свойств столбца. Там вы можете установить идентичность «да». Там же можно изменить начальное значение автоинкремента. Надеюсь, я мог помочь;)
источник
У меня была эта проблема, когда я уже создал таблицу и не мог изменить ее, не удаляя таблицу, поэтому я сделал следующее: (Не уверен, когда они реализовали это, но имели это в SQL 2016)
Щелкните правой кнопкой мыши таблицу в проводнике объектов:
Script Table as > DROP And CREATE To > New Query Editor Window
Затем внесите изменения в сценарий, сказанный Жозьеном; прокрутите вниз, где
CREATE TABLE
находится, найдите свой первичный ключ и добавьтеIDENTITY(1,1)
в конце перед запятой. Запустить скрипт.Сценарий DROP and CREATE также помог мне из-за этой проблемы. (Который обрабатывает сгенерированный скрипт.)
источник
Будьте внимательны, если хотите, чтобы элементы идентификатора были условными или нет. В качестве SQLSERVER ID можно прыгать на 1000.
Пример: перед перезапуском ID = 11, после перезапуска вы вставляете новую строку в таблицу, тогда id будет 1012.
источник
Вы можете использовать ключевое слово
IDENTITY
в качестве типа данных для столбца вместе сPRIMARY KEY
ограничением при создании таблицы.например:
Здесь первое «1» означает начальное значение, а второе «1» - возрастающее значение.
источник
MS SQL Server использует ключевое слово IDENTITY для выполнения функции автоинкремента.
В приведенном выше примере начальное значение для IDENTITY равно 1, и оно будет увеличиваться на 1 для каждой новой записи.
Совет: чтобы указать, что столбец «Personid» должен начинаться со значения 10 и увеличиваться на 5, измените его на IDENTITY (10,5).
Чтобы вставить новую запись в таблицу «Персоны», нам НЕ нужно указывать значение для столбца «Персона» (уникальное значение будет добавлено автоматически):
источник
Если таблица уже заполнена, невозможно изменить столбец на столбец IDENTITY или преобразовать его в столбец не IDENTITY. Вам нужно будет экспортировать все данные, затем вы можете изменить тип столбца на IDENTITY или наоборот, а затем импортировать данные обратно. Я знаю, что это болезненный процесс, но я считаю, что нет альтернативы, кроме как использовать последовательность, как указано в этом посте.
источник
ALTER TABLE ... SWITCH
чтобы просто переключать метаданные, не касаясь данных вообще. Например, посмотрите, как установить автоинкремент после создания таблицы без потери данных?