2
我们使用的是SQL Server 2012
,并且对需要自动递增值类型为int
的列使用序列。Microsoft SQL Server序列
在极少数情况下,当序列当前值没有更新到下一个值时,我们会遇到问题。
最近,当我们的服务器重新启动SQL有服务,我们面临着类似的问题,下面创建序列..
CREATE SEQUENCE [dbo].[SqID]
AS [int]
START WITH 1
INCREMENT BY 1
MINVALUE 0
MAXVALUE 2147483647
CACHE
GO
SqID,Current Value = 12 In SQL
..
我在其中用于插入使用上述顺序记录的表,有插入的记录与
SqID (13, 14, 15....)
一旦重新启动服务器,然后在与重复的键抛出异常时插入查询。
所以我的问题是,在这种情况下当前值SqID
没有正确更新,为什么?以上情况是否有任何解决方法可以避免手动重新启动序列?
或者在SQL Server中没有可以在SQL服务(启动/停止)出现问题时自动重启序列的东西?
谢谢
你能展示你序列的定义吗? – JohnFx
约翰,找到这句法序列构建CREATE SEQUENCE [DBO]。[SQID] AS [INT] 1个 递增 START BY 1 MINVALUE 0 MAXVALUE 2147483647 CACHE GO – Viral
完全是您最新有更新?你也可以描述究竟发生了什么?序列认为'NEXT VALUE'是什么,它试图插入什么样的重复密钥?这是最后一个被一个人用掉吗?你怎么使用序列?它是作为默认列值吗?我发现[此连接项目](http://connect.microsoft.com/SQLServer/feedback/details/790161/next-value-for-sequence-can-fail-to-return-proper-next-value) 2票绝对不是一个普遍的投诉。另外两个人在那里评论指出重负荷不重新启动。 –