最近這兩年創建資料庫的自增Id列總是出現一個問題,一開始自增正常,都是1、2、3遞增,突然就變成1004、1005這樣,一直以為程式有問題,後來多次查閱資料才在國外網站上找到問題。 ...
最近這兩年創建資料庫的自增Id列總是出現一個問題,一開始自增正常,都是1、2、3遞增,突然就變成1004、1005這樣,一直以為程式有問題,後來多次查閱資料才在國外網站上找到問題。
從SQL Server 2012版本開始,重新啟動SQL Server實例時,表的
Identity
值將被跳轉,而實際跳轉的值取決於標識列數據類型。如果為整數(int
)數據類型,則跳轉值為1000
;如果為大整數(bigint
),則跳轉值為10000
。從我們的應用程式角度來看,這種增量對於所有業務案例都是不可接受的,特別是當該值顯示給客戶時。這是僅SQL Server 2012附帶的特殊情況/問題,較早的版本沒有此問題。
意思就是說,只要重啟SQL Server實例,自增ID就會斷開1000條或10000條。雖然id不連續一般沒什麼影響,但強迫症往往受不了突然從一兩位數變成四五位數,解決方案也很簡單:
將-t272註冊到SQL Server啟動參數
從伺服器中打開SQLServer配置管理器。在sqlserver服務商右鍵選擇“屬性”菜單。您將找到一個選項卡式對話框視窗。從那裡選擇啟動參數選項卡,啟動參數輸入-t272,點擊添加。然後再次重新啟動SQL Server 2012實例。