No puede modificar las columnas existentes para la identidad.
Tienes 2 opciones,
-
Cree una nueva tabla con identidad y suelte la tabla existente
-
Cree una nueva columna con identidad y suelte la columna existente
Enfoque 1. (Nueva tabla ) Aquí puede conservar los valores de datos existentes en la columna de identidad recién creada. Tenga en cuenta que perderá todos los datos si "si no existe" no se cumple, ¡así que asegúrese de poner la condición en la caída también!
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'
Enfoque 2 (Nueva columna ) No puede conservar los valores de datos existentes en la columna de identidad recién creada. La columna de identidad contendrá la secuencia de números.
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'
Consulte la siguiente publicación del foro de Microsoft SQL Server para obtener más detalles:
Cómo modificar la columna a la identidad (1,1)