在SQL Server中,如何将自动增量字段的下一个值设置为任意值,就像在Postgres中一样?

mut*_*ron 2 sql-server postgresql auto-increment

是否可以autoincrement像在Postgres中那样在SQL Server中设置字段的下一个值?

对于好奇,这是整个背景故事.我的公司过去常常使用Postgres,它允许您轻松地将自动增量字段的下一个值设置为任意值.

新公司买了旧公司,现在我们将Postgres数据导入SQL Server.不知何故AcctID,账户上的自动增量字段设置为9位数字,即使有数千个8位数字.显然有人在Postgres做了一段时间,因为一些现在不为人知的原因.

所以现在在新的SQL Server数据库中,新帐户有9位帐户ID,但客户的会计软件无法处理9位帐号,因此他们添加的任何新帐户都无法由其会计部门处理直到这个问题得到解决

当然,最多有72个不同的表可以依赖于AcctID字段Accounts,并且客户端在实现所涉及的问题之前创建了大约360个新帐户,因此保存该数据,截断表并重新插入数据将是繁重的任务.

更好的是将自动增量值设置AcctID为最后的8位数值+ 1.然后,至少他们能够在处理9位数帐户的解决方案时添加新帐户.事实上,他们声称他们只需要他们添加的360个帐户中的3个.

那么可以像在Postgres中那样重置SQL Server中字段的自动增量值吗?

ssa*_*ndo 9

在SQL Server中,您可以重置自动增量列,如下所示:

dbcc checkident ( table_name, RESEED, new_value )
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看MSDN的相关文档.

  • 不,它不会.AFAIK是在MSSQL**中声明自动增量列的唯一方法是**通过标识列.如果它的标识规范是否定的,它是如何自动增量的?我有点困惑.我们在谈论微软的SQL Server,对吗? (3认同)