TSQL Reset Identity auto-increment number – TSQL 上怎樣可以重設 自動遞增數的種子數值

今天在公司寫的一個Module 需要每天都把公司其中一個數據庫Table上大部份的資料複製一次到這個暫用的Table上分析
之後再出一個報告
由于資料數量每天都有數百萬條…所以不知道會不會有一天auto-increment 的值大過Integer的值
導致出現
Arithmetic overflow error converting expression to data type int.
的錯誤信息
Arithmetic overflow error converting expression to data type int

所以便在做research 看看有沒有方法可以重設這個Auto-Increment的值
每當資料重新Import 時重設他做0
解決方法..
原來我們是可以使用 “DBCC CHECKIDENT” 這個功能來檢查重設Auto-increment 的值的
E.G.
檢查現在Auto-Increment的值
DBCC CHECKIDENT (‘TableName’);
TSQL Check Identity value

我使可以使用RESEED這個變數來重設 Auto-Increment的值

DBCC CHECKIDENT (‘TableName’, RESEED,0);
TSQL Reseed Auto-increment Number

結果:
Reset Table Identity Field

詳情可以參考以下網址
http://technet.microsoft.com/en-us/library/ms176057.aspx

Hope you find it useful

Leave a Reply