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票絕對不是一個普遍的投訴。另外兩個人在那裏評論指出重負荷不重新啓動。 –