每天資訊MSSQL資料在高版本中自動增長欄位出現值跳躍的處理

菜單

MSSQL資料在高版本中自動增長欄位出現值跳躍的處理

從SQL SERVER 2012版本開始,安裝有SQL資料的伺服器重啟之後,如果表格中設定自動增長標識的欄位值,自動增長的值會出現跳躍的情況,如設定的資料型別為INT的,跳躍值會出現增加1000的情況,該種情況會出現在SQL SERVER 2012以上的版本,下面分享處理該問題的方法。

1。在SQL server 2012的版本中設定如下的自動增長的列值,如下面,設定的資料型別為INT整數型。自動增長的標識為1

MSSQL資料在高版本中自動增長欄位出現值跳躍的處理

2。如果重啟資料的服務或者重啟計算機後會出現下面的值跳躍的情況,像上面設定的是整數型的情況,會出現跳躍1000的情況。據說如果設定的是長整數型的話,值會跳躍10000,具體的情況沒有進行過相關的測試。

MSSQL資料在高版本中自動增長欄位出現值跳躍的處理

3。據微軟說,這種情況不是BUG,在相關的一些場景中比較有用。但我們很多時候並不需要這樣的功能。

我們可以透過下面的方法來處理。

透過建立一個不帶快取的序列,設定好最小值,最大值,增量。然後根據此序列來插入數值。使用insert into語句時用NEXT VALUE FOR Id_Sequence的程式碼方法

MSSQL資料在高版本中自動增長欄位出現值跳躍的處理

4。需要注意的是要移除表各中列值的標識增量。此方法,主要針對的是隻需要更改個別或者部分的表格的設定。

MSSQL資料在高版本中自動增長欄位出現值跳躍的處理

5。如果需要針對的是全域性的表格自增長列的設定,可以採取下面的方法。

開啟SQL SERVER的配置管理器。選擇SQL SEERVER服務,在右邊使用滑鼠右鍵點選sql server(MSSQLSERVER),點選選擇【屬性】。

MSSQL資料在高版本中自動增長欄位出現值跳躍的處理

6。在sql server屬性設定的介面中,切換至【啟動引數】的介面卡,在指定啟動引數下面輸入啟動的引數:-t272,點選【新增】加入該啟動引數。點選應用使設定生效。

MSSQL資料在高版本中自動增長欄位出現值跳躍的處理

7。設定該引數後,提示需要重啟服務方可生效。

MSSQL資料在高版本中自動增長欄位出現值跳躍的處理

8。使用滑鼠的右鍵點選SQL SERVER的服務,點選彈出選單中的【重新啟動】重啟SQL SERVER的服務使設定生效,這樣該例項資料庫下的所有表增長欄位將不會出現值跳躍的問題。

MSSQL資料在高版本中自動增長欄位出現值跳躍的處理