代码之家  ›  专栏  ›  技术社区  ›  Paul Michaels

SQL Server-创建自动递增的唯一键

  •  2
  • Paul Michaels  · 技术社区  · 15 年前

    在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]
    

    基本上,我希望键从1开始,并且只为每个记录递增。

    2 回复  |  直到 15 年前
        1
  •  5
  •   Paul Sasik    15 年前

    你在找 IDENTITY property .

    从文档中:

    在表中创建标识列。 此属性用于创建 表和更改表Transact-SQL 声明。

    IDENTITY [ (seed , increment) ]
    

    种子

    是用于 第一行已加载到表中。

    增量

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

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

    顺便说一句,所有这些都很容易通过SQL Server的管理用户界面实现。只需右键单击您的表并选择“设计”。然后选择适当的列并设置Identity属性。

        2
  •  2
  •   Per Hornshøj-Schierbeck    15 年前

    在表create语句中定义主键,如下所示:

    [key][int]标识(1,1)不为空