【问题标题】:How do I add a auto_increment primary key in SQL Server database?如何在 SQL Server 数据库中添加 auto_increment 主键?
【发布时间】:2011-10-10 07:14:11
【问题描述】:

我设置了一个当前没有主键的表。我需要做的就是添加一个primary key, no null, auto_increment

我正在使用Microsoft SQL Server 数据库。我知道它不能在单个命令中完成,但我尝试的每个命令都会返回语法错误。

编辑---------------

我已经创建了主键,甚至将其设置为非空。但是,我无法设置auto_increment

我试过了:

ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment
ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment

我使用 NVARCHAR 是因为它不允许我在 int 下设置 NOT NULL

【问题讨论】:

标签: sql sql-server auto-increment


【解决方案1】:

它可以在一个命令中完成。您需要为“自动编号”设置 IDENTITY 属性:

ALTER TABLE MyTable ADD mytableID int NOT NULL IDENTITY (1,1) PRIMARY KEY

更准确地说,设置命名表级约束:

ALTER TABLE MyTable
   ADD MytableID int NOT NULL IDENTITY (1,1),
   CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED (MyTableID)

请参阅 MSDN 上的 ALTER TABLE and IDENTITY

【讨论】:

  • 完美!谢谢你的帮助。一旦计时器允许我接受答案,我就会接受。 :D
  • 可以,但是正确的语法是没有第二个“ADD”,它是:ALTER TABLE MyTable ADD MytableID int NOT NULL IDENTITY (1,1), CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED (MyTableID)
【解决方案2】:

你可以试试这个... 更改表 Your_Table ADD table_ID int NOT NULL PRIMARY KEY auto_increment;

【讨论】:

    【解决方案3】:

    如果你有专栏,那就很容易了。

    使用设计器,您可以将列设置为标识(1,1):右键单击表格→设计→部分左侧(右键单击)→属性→在标识列中,选择#column。


    属性

    身份列

    【讨论】:

      【解决方案4】:

      在 SQL Server 2008 中:

      • 右键单击表格
      • 去设计
      • 选择数值数据类型
      • 将名称添加到新列
      • 将身份规范设为“是”

      【讨论】:

        【解决方案5】:

        如果表已经包含数据并且您想将其中一列更改为标识:

        首先新建一个列相同的新表,并指定主键-kolumn:

        create table TempTable
        (
            Id int not null identity(1, 1) primary key
            --, Other columns...
        )
        

        然后使用标准的insert-statement 将原始表中的所有行复制到新表中。

        然后删除原始表。

        最后使用sp_renameTempTable 重命名为您想要的任何名称:

        http://msdn.microsoft.com/en-us/library/ms188351.aspx

        【讨论】:

        • 这个创建表的语法是良好的实践,正如this 在 cmets 中的帖子的作者所建议的那样,希望对某人有所帮助。
        【解决方案6】:

        您也可以通过 SQL Server Management Studio 执行此操作。

        右键单击您选择的表 -> 修改

        在要设置为PK的字段上右击-->设置主键

        在“列属性”下将“标识规范”设置为“是”,然后指定起始值和增量值。

        那么以后如果您希望能够编写这种事情的脚本,您可以右键单击刚刚修改的表并选择

        "SCRIPT TABLE AS" --> 创建于

        以便您自己查看执行此操作的正确语法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-05-05
          • 1970-01-01
          • 2011-06-15
          • 1970-01-01
          • 2011-09-01
          • 2012-12-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多