【问题标题】:Setting Primary Key auto increment with Alter Command [duplicate]使用 Alter 命令设置主键自动递增 [重复]
【发布时间】:2012-07-31 23:26:09
【问题描述】:

可能重复:
How do I add auto_increment to a column in SQL Server 2008

嘿,我在 gui 中创建了表,但是我忘记将主键设置为自动增量!表的名称是Emp_CV

类似这样的:

alter table Emp_CV alter column Applicant_ID NOT NULL int AUTO_INCREMENT

我怎样才能做到这一点? 我正在使用 SQL Server 2008!

【问题讨论】:

  • 不能使用 GUI 编辑器吗?
  • 不,一旦创建表就不允许更改!我必须用 alter 命令改变它!
  • 你可以删除并重新创建它吗?
  • 我没有保存创建查询!我只想知道正确的 alter 命令来完成上面提到的我假设的 sql 命令
  • @burhan:这是您创建表格后的帖子,而不是您已经创建表格的帖子!

标签: sql sql-server-2008


【解决方案1】:

简短的回答是……你不能。这是你必须做的:

  1. 确保没有人/没有人在使用您的桌子。

  2. 添加一个新的整数列,它将成为新的标识列。它必须允许空值并且必须具有适当的标识值。

  3. 执行set identity_insert dbo.foo on -- 必须指定您的表名。

  4. 用现有标识列的值作为种子:

    更新 dbo.foo 设置 new_id = id

  5. 删除现有标识列参与的任何键/约束。

  6. 执行set identity_insert dbo.foo off

  7. 删除现有列。

  8. 更改新列,将其无效更改为 not null

  9. 执行命令dbcc checkident( {your-table-name-here} , reseed )

  10. 执行sp_rename并将新列与旧列同名。

  11. 重新创建在第 4 步中删除的键/约束。

  12. 可能希望在引用此表的任何存储过程上运行 sp_recompile

简单!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-14
    • 2016-04-04
    • 2014-04-05
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    相关资源
    最近更新 更多