SQL Server中重置或設置自動增長的序列

自動增長 序列,一般用來當做ID 使用。

爲了解決系統自增序列達到上限後系統出現問題,可以設置重置來解決。

DBCC CHECKIDENT ('table_name', NORESEED) 
-- 查看當前表的序列的值,table_name爲表名


DBCC CHECKIDENT('table_name',RESEED,1)  
-- 重置當前表的序列值爲1,不刪除表的數據。(注意:如果序列爲主鍵,不刪除表的數據的時候,插入同ID的數據時會出錯)


TRUNCATE TABLE 'table_name'  
-- 刪除表中的所有的數據的同時,將自動增長序列清零。

 

在這裏本人是處理系統的日誌問題

在SQL server中創建作業,然後執行指定的命令。用到的 ID 的類型是INT 類型了,所以ID的值自增到2147483647爲最大值,所以在大於2000000000的時候將序列充值。

DECLARE  @ERPLOGID INT

SELECT TOP 1 @ERPLOGID=ID FROM TBLERPLOG ORDER BY CREATEDATE DESC
IF @ERPLOGID>2000000000
BEGIN
    DBCC CHECKIDENT('TBLERPLOG',RESEED,10086)
END

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章