【问题标题】:Set value for SQL Server database table auto increment field为 SQL Server 数据库表自动增量字段设置值
【发布时间】:2013-04-21 14:44:48
【问题描述】:

我使用的是 Microsoft SQL Server 2008。在数据库中,我有一个带有自动增量字段 (ID) 的表。我已经在表中插入了两行,因此下一行的 ID 将为 3。 我想要做的是,当插入下一行时,它的 ID 的值为例如 100。有什么办法可以做到这一点? (不要告诉我插入和删除97行)

如果不是,那么我可以尝试重新创建表,但是如何将 ID 的值设置为最初定义的某个值,即我希望它从 100 开始,而不是从 1 开始?

【问题讨论】:

标签: sql-server-2008 auto-increment


【解决方案1】:

或者你可以这样做:

dbcc checkident("YourTable", RESEED, 99)

这将使下一个插入以 100 的 id 进入

【讨论】:

    【解决方案2】:

    当然是的:

    SET IDENTITY_INSERT dbo.YourTable ON
    
    INSERT INTO dbo.YourTAble(AutoIncID, ...other columns....)
    VALUES(100, ......)
    
    SET IDENTITY_INSERT dbo.YourTable OFF
    

    通过使用SET IDENTITY_INSERT ... ON,您启用将值显式插入IDENTITY 列。不过,别忘了关掉它!并且在您连接到 SQL Server 时,一次只能有一个表可以有此设置ON

    另外:完成此操作后,现在您当前的 IDENTITY 值将是 100 - 因此您以正常方式插入的下一行(没有激活 SET IDENTITY_INSERT ON)将获得标识值 101,然后是 102等等

    【讨论】:

      猜你喜欢
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      相关资源
      最近更新 更多