Raj*_*lar 48 sql sql-server sql-server-2012
我正在使用Sql server 2012(Denali).我想知道为什么所有标识列值都从1001开始,依此类推.在开始Identity
列从1,2开始,依此类推,并顺利添加标识,但突然它跳转到1001,1002以及包含标识列的数据库中的所有表.可能是什么原因?请协助.
Kit*_*tty 74
Microsoft已经改变了他们在SQL Server 2012中处理身份值的方式,因此您可以在重新启动SQL Server实例或服务器计算机后看到记录之间的身份差距.这个id间隙可能还有其他一些原因,可能是因为安装更新后服务器自动重启.
您可以使用以下两种选择
使用具有NO CACHE设置的序列生成器
在SQL Server 2012上设置跟踪标志272,这是您期望的
打开"SQL Server配置管理器"
Mik*_*son 12
我相信你在对这个连接项的评论中有解释.身份重新设定中的故障转移或重新启动结果
为了提高高端机器的性能,我们在2012年引入了身份值的预分配.并且可以使用TF 272禁用此功能(然后您将获得2008R2的行为).
标识属性分别存储在元数据中.如果在身份中使用了值并且调用了增量,则将设置新的种子值.没有操作,包括Rollback,Failover,.....可以更改除DBCC重新设定之外的种子值.故障转移适用于表对象,但不适用于标识对象.因此,对于故障转移,您可以在手动故障转移之前调用检查点,但您可能会看到计划外情况的间隙.如果差距是一个问题,那么我建议你使用TF 272.
对于控制管理器关闭,我们有一个修复下一个版本(使用另一个TF).此修复程序将处理大多数控制管理器关闭案例.