Как добавить первичный ключ auto_increment в базу данных SQL Server?

У меня есть настроенная таблица, которая в настоящее время не имеет первичного ключа. Все, что мне нужно сделать, это добавить primary key, no null, auto_increment.

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

редактировать ---------------

Я создал первичный ключ и даже установил его как не нуль. Однако я не могу настроить auto_increment.

Я пробовал:

ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment
ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment

Я использую NVARCHAR, потому что он не позволит мне установить NOT NULL под int

Ответ 1

Это можно сделать одной командой. Вам необходимо установить свойство IDENTITY для "автоматического номера":

ALTER TABLE MyTable ADD mytableID int NOT NULL IDENTITY (1,1) PRIMARY KEY

Точнее, чтобы установить ограничение именованного уровня таблицы:

ALTER TABLE MyTable
   ADD MytableID int NOT NULL IDENTITY (1,1),
   CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED (MyTableID)

См. ALTER TABLE и IDENTITY в MSDN.

Ответ 2

Если таблица уже содержит данные и вы хотите изменить один из столбцов на личность:

Сначала создайте новую таблицу с одинаковыми столбцами и укажите первичный ключ-столб:

create table TempTable
(
    Id int not null identity(1, 1) primary key
    --, Other columns...
)

Затем скопируйте все строки из исходной таблицы в новую таблицу, используя стандартное insert -statement.

Затем отбросьте исходную таблицу.

И, наконец, переименуйте TempTable в то, что вы хотите, используя sp_rename:

http://msdn.microsoft.com/en-us/library/ms188351.aspx

Ответ 3

Вы также можете выполнить это действие с помощью SQL Server Management Studio.

Щелкните правой кнопкой мыши на выбранной таблице → Изменить

Щелкните правой кнопкой мыши на поле, которое вы хотите установить как PK → Установить основной ключ

В разделе "Свойства столбца" установите "Спецификация идентификации" на "Да", затем укажите начальное значение и значение приращения.

Тогда в будущем, если вы хотите иметь возможность просто script использовать этот вид, вы можете щелкнуть правой кнопкой мыши только что измененную таблицу и выбрать

"SCRIPT ТАБЛИЦА AS" → СОЗДАТЬ В

чтобы вы могли убедиться в правильности синтаксиса для выполнения этого действия.

Ответ 4

Если у вас есть столбец, это очень просто.

Используя конструктор, вы можете установить столбец как идентификатор (1,1): щелкните правой кнопкой мыши по таблице → дизайн → в левой части (щелкните правой кнопкой мыши) → свойства → в столбцах идентификации, выберите #column.


Свойства:

введите описание изображения здесь

Столбец идентификатора:

введите описание изображения здесь

Ответ 5

В SQL Server 2008:

  • Щелкните правой кнопкой мыши на таблице
  • Перейти к дизайну
  • Выберите числовой тип данных
  • Добавить имя в новый столбец
  • Сделайте спецификацию удостоверения личности "ДА"

Ответ 6

вы можете попробовать это... ALTER TABLE Your_Table  ADD table_ID int NOT NULL PRIMARY KEY auto_increment;