не работает
ALTER TABLE ProductInProduct ALTER COLUMN Id KEY IDENTITY (1, 1);
Проверить изображение
У меня есть таблица ProductInProduct хочет, чтобы ее идентификатор был уникальным..
не работает
ALTER TABLE ProductInProduct ALTER COLUMN Id KEY IDENTITY (1, 1);
Проверить изображение
У меня есть таблица ProductInProduct хочет, чтобы ее идентификатор был уникальным..
Вы не можете "преобразовать" существующий столбец в столбец IDENTITY
- вам нужно будет создать новый столбец как INT IDENTITY
:
ALTER TABLE ProductInProduct
ADD NewId INT IDENTITY (1, 1);
Update:
ОК, поэтому существует способ преобразования существующего столбца в IDENTITY
. Если вам это абсолютно необходимо - проверьте этот ответ Мартина Смита со всеми подробностями gory.
Вы не можете изменить существующие столбцы для идентификации.
У вас есть 2 варианта,
Создать новую таблицу с идентификатором и удалить существующую таблицу
Создайте новый столбец с идентификатором и удалите существующий столбец
Подход 1. (Новая таблица) Здесь вы можете сохранить существующие значения данных во вновь созданном столбце идентификации.
CREATE TABLE dbo.Tmp_Names
(
Id int NOT NULL
IDENTITY(1, 1),
Name varchar(50) NULL
)
ON [PRIMARY]
go
SET IDENTITY_INSERT dbo.Tmp_Names ON
go
IF EXISTS ( SELECT *
FROM dbo.Names )
INSERT INTO dbo.Tmp_Names ( Id, Name )
SELECT Id,
Name
FROM dbo.Names TABLOCKX
go
SET IDENTITY_INSERT dbo.Tmp_Names OFF
go
DROP TABLE dbo.Names
go
Exec sp_rename 'Tmp_Names', 'Names'
Подход 2 (Новый столбец). Вы не можете сохранить существующие значения данных во вновь созданном столбце идентификации. Столбец идентификации будет содержать последовательность чисел.
Alter Table Names
Add Id_new Int Identity(1, 1)
Go
Alter Table Names Drop Column ID
Go
Exec sp_rename 'Names.Id_new', 'ID', 'Column'
Более подробную информацию см. на следующем форуме Microsoft SQL Server:
Вы не устанавливаете значение по умолчанию в таблице. Сначала следует очистить опцию "Значение по умолчанию или привязка".