2017-10-21 26 views
0

我有一个名为EMPLOYEE_DETAILS这些列的表:如何给AUTOINCREMENT列SQL Server中的特定表?

@EMPLOYEEE_ID, 
    @EMPLOYEE_FIRSTNAME, 
    @EMPLOYEE_MIDDEL_NAME, 
    @EMPLOYEE_LAST_NAME, 
    @EMPLOYEE_CODE, 
    @EMPLOYEE_WORKDEPT, 
    @EMPLOYEE_PHONENO, 
    @EMPLOYEEE_HIREDATE, 
    @EMPLOYEE_JOB, 
    @EMPLOYEE_POSITION, 
    @EMPLOYEE_SEX, 
    @EMPLOYEE_BIRTHDATE, 
    @EMPLOYEE_SALARY, 
    @EMPLOYEE_BONUS, 
    @EMPLOYEE_COMM 

现在,EMPLOYEE_ID是主键,但它没有自动增量值。

如何提供自动增量值,如果该列已经创建而不删除列结构?

以下是我已经尝试了查询,但我得到了一个错误:

Msg 156, Level 15, State 1, Line 8
Incorrect syntax near the keyword 'IDENTITY'.

代码:

ALTER TABLE EMPLOYEE_DETAILS 
    ALTER COLUMN EMPLOYEE_ID IDENTITY(1,1); 
+0

而错误是????? – Tanner

+0

请参阅我更新的问题。 –

+0

然后,我将面临的问题是迁移现有的数据,如果我将删除tabel结构。那么我怎么才能解决这个问题。 –

回答

-2

要修改已创建的列自动增量。试试这个查询:

ALTER TABLE table_name MODIFY EMPLOYEE_ID datatype(length) AUTO_INCREMENT PRIMARY KEY 

您不能将一个已经存在的列作为IDENTITY列。您可以删除并重新创建标记为IDENTITY的列的表格,也可以删除列并添加新的IDENTITY列。

+0

然后,我将面临的问题是迁移现有的数据,如果我将删除tabel结构。那么我怎么才能解决这个问题。 –

+0

我不明白你的意思。如果您修改现有列的属性,为什么还需要删除表结构 –

+0

您无法将标识属性添加到现有表中。您必须删除表格并重新创建它。 –

相关问题