【问题标题】:SQL Server - Create auto-incrementing unique keySQL Server - 创建自动递增的唯一键
【发布时间】:2011-04-06 06:03:54
【问题描述】:

SQL Server 中是否有一种方法可以创建具有自动递增主键的表?我一直在查看“UniqueIdentifier”类型,但这似乎没有达到我的预期。

目前,我有这样的事情:

CREATE TABLE [dbo].[MyTable](
        [Date] [datetime] NOT NULL,
    [MyField1] [nchar](50) NOT NULL,
    [MyField2] [nvarchar](max) NULL,
    [Key] [uniqueidentifier] NOT NULL
) ON [PRIMARY]

基本上,我希望 KEY 从 1 开始,并为每条记录自增。

【问题讨论】:

    标签: primary-key sql-server-express uniqueidentifier create-table


    【解决方案1】:

    在表创建语句中定义您的主键,如下所示:

    [Key] [int] IDENTITY(1,1) NOT NULL

    【讨论】:

    • 但他想使用 Guid 作为主键。
    • @starskythehutch:他确实说他希望它从 1 开始并递增,所以我想他想要一个 int?
    • 很公平。删除了我的答案。
    【解决方案2】:

    您正在寻找IDENTITY property

    来自文档:

    在表中创建一个标识列。 此属性与 CREATE 一起使用 TABLE 和 ALTER TABLE Transact-SQL 声明。

    IDENTITY [ (seed , increment) ]
    

    种子

    是用于非常的值 第一行加载到表中。

    增量

    是添加的增量值 到前一个的标识值 已加载的行。

    您必须同时指定种子和 增加或不增加。如果两者都不是 指定,默认为 (1,1)。

    顺便说一句,所有这些都可以通过 Sql Server 的 mgmt UI 轻松实现。只需右键单击您的表格并选择设计。然后选择适当的列并设置 IDENTITY 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 2012-06-15
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多