如何将非自动增量的具有外键约束的主键更改为自动增量?
如何将非自动增量的具有外键约束的主键更改为自动增量?
我有一个名为Employees
的表:
EmpId int not null
EmpName nvarchar
- ...
然而,该表被其他表通过外键引用,即EmpId
是其他表中的外键。
以下代码无效:
USE MyDatabase ALTER TABLE [MyDatabase].[EmployeesSchema].[Employees] DROP CONSTRAINT PK_Employees ALTER TABLE [MyDatabase].[EmployeesSchema].[Employees] DROP COLUMN EmpId ALTER TABLE [MyDatabase].[EmployeesSchema].[Employees] ADD TempColumn INT IDENTITY(1,1) ALTER TABLE [MyDatabase].[EmployeesSchema].[Employees] ADD CONSTRAINT PK_Employees PRIMARY KEY (TempColumn) GO sp_RENAME '[MyDatabase].[EmployeesSchema].[Employees].TempColumn', 'EmpId' , 'COLUMN' GO
它产生以下结果:
约束'PK_Employees'正在被表'Clients'引用,
外键约束'Employees_Clients_FK'。
即使有外键约束,我如何将EmpId
更改为自动递增?