【问题标题】:SQL Server 2005 Identity Specification not respecting seed valueSQL Server 2005 身份规范不尊重种子值
【发布时间】:2009-10-28 19:12:36
【问题描述】:

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

我们之前使用 AutoNumber 数据类型创建的一些列,这很好。但是,我需要为其他数据创建无意义但唯一的标识符,因此我将 int 数据类型与 Identity Specification 属性一起使用。我在“101”播种,以使这些数据保持在已经具有唯一标识符的数据当前存在的范围之上,因为它们最终将驻留在同一个表中。

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

USE dbMyDatabase
DBCC checkident(tblMyTable, reseed, 101)

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

【问题讨论】:

  • 你是在使用 CREATE TABLE myTbl (ID int IDENTITY(101,1)) 还是别的?
  • 我最初使用 SQL Server Manager Express 和“新建列...”命令创建了该字段。我刚刚删除它并再次使用以下方法添加了该列:USE dbMyDatabase ALTER TABLE tblMyTable ADD fldID INT IDENTITY(101,1),它就像一个魅力。我对 Microsoft 的“捷径”越来越感到恼火,尤其是在提到 SSMA 和 SQL Server Manager 时,但我应该更了解并手动完成。感谢您的回复!现在完美运行。

标签: sql-server database identity specifications


【解决方案1】:

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

USE dbMyDatabase
ALTER TABLE tblMyTable 
ADD fldID INT IDENTITY(101,1)

效果很好。

【讨论】:

    猜你喜欢
    • 2016-06-15
    • 2019-04-29
    • 2010-10-16
    • 1970-01-01
    • 2011-01-09
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多