代码之家  ›  专栏  ›  技术社区  ›  Adrian Godong

标识列不同步

  •  0
  • Adrian Godong  · 技术社区  · 16 年前

    我有一个表,其中标识列作为主键。

    一切都很好,直到几天前,使用此表的应用程序开始抱怨PK违规。起初我以为这是不可能的,直到我想起 DBCC CHECKIDENT

    我的问题是,为了防止将来再次发生这种情况,这种不同步问题的可能原因是什么?如何预防?

    2 回复  |  直到 16 年前
        1
  •  3
  •   Josh E    16 年前

    听起来你必须搜索你的代码,找到IDENTITY_INSERT打开的实例,然后插入一个(可能是编号较高的ident列)键。您的应用程序过去可能很幸运,因为插入的(和任意的)PK值在种子值内,这可能是由于删除等原因造成的。

        2
  •  0
  •   HLGEM    16 年前

    开发人员不应该拥有生产权,仅仅这一步就可以防止您的问题在未来再次发生,因为dba不允许在不考虑其影响的情况下打开身份插入。我同意Josh的观点,检查正在运行的任何ETL导入,特别是查找在问题开始时运行的导入。