【问题标题】: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等等