【问题标题】:The value of primary key doesn't change主键值不变
【发布时间】:2012-06-16 02:33:56
【问题描述】:

我正在使用 Visual Studio 2010 处理 asp.net mvc3 项目和 sql server 2008。我有一个表,该表的主键是 int 数据类型。我将身份规范设置为“是”,身份是否为“是”,身份增量和身份种子“1”。当表为空并且可以轻松保存数据时一切正常,但是当我关闭 Visual Studio 时,再次打开它并想要保存数据时出现中断,显示主键的值为“1”。 (我删除了一次数据库的数据,删除后第一行的主键是5,其他行是6,7,...)。这个问题的解决方案是什么?你的回答会很有帮助。谢谢

【问题讨论】:

    标签: sql-server database visual-studio-2010 sql-server-2008


    【解决方案1】:

    对主键使用序列类型可能会有所帮助...

    【讨论】:

    • @juankysmth:谢谢你的回答。但我不能换桌子。我应该更改所有代码,但我没有足够的时间。
    • 有很多免费的数据库管理工具。如果您有数据库登录名/密码,只需下载这些工具之一 (freewarefiles.com/category_8_88.html) 并修改列类型以便自动增量。
    • 你为什么认为这是一个答案?序列仍然有差距。为什么不链接到 SQL Server Express 工具而不是一些 3rd 方站点
    【解决方案2】:

    *自动间隙删除没有解决方案:标识列总是有间隙是有充分理由的。例如,删除的行可能在某个历史记录或审计表中,您不想重用它。

    但是,您可以使用DBCC CHECKIDENT 重置列

    注意这里的问题:SQL server identity column values start at 0 instead of 1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      相关资源
      最近更新 更多