SQL Server 2005标识规范不尊重种子值

时间:2009-10-28 19:12:36

标签: sql-server database identity specifications

我正在将Access数据库转换为SQL Server 2005.我已经使用SSMA成功迁移了数据和原始模式,现在正在对数据库进行规范化,这需要我添加一些唯一标识符。

我们之前使用的一些列是使用自动编号数据类型创建的,这很好。但是,我需要为其他数据创建无意义但唯一的标识符,因此我使用带有Identity Specification属性的int数据类型。我在'101'播种,以使这些数据保持在当前存在的已有唯一标识符的数据的范围内,因为它们最终将位于同一个表中。

我的问题是,当我使用种子值为“101”且增量为“1”的身份规范创建一个新的int时,数字从“1”开始。我试图重新开始:

USE dbMyDatabase
DBCC checkident(tblMyTable, reseed, 101)

无济于事。任何建议将不胜感激。提前谢谢!

1 个答案:

答案 0 :(得分:1)

解决方案是手动使用SQL查询创建列。通过“新列...”选项添加它每次都会产生不正确的结果。现在我用

添加了它
USE dbMyDatabase
ALTER TABLE tblMyTable 
ADD fldID INT IDENTITY(101,1)

它运作得很好。