it-swarm.com.ru

Как добавить первичный ключ 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

53
dcp3450

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

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 and IDENTITY на MSDN

110
gbn

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

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

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

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

Затем бросьте оригинальный стол.

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

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

21
Andreas Ågren

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

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

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

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

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

"SCRIPT TABLE AS" -> СОЗДАТЬ

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

13
ChrisCamp

Если у вас есть колонка, это очень легко.

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


Свойства :

enter image description here

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

enter image description here

1
gustavo herrera

В SQL Server 2008:

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