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