20120313

T-SQL – 重設資料表的索引值(DBCC CHECKIDENT)

說明

身為一個程式設計人員,最怕遇到的就是資料表的變更,若是資料表變更了,往往之前許多寫好的程式,包含Stored Procedure, Function等,都要重改;而且最重要的是,資料表的主索引值變了……

 

而且像我這種愛鑽牛角尖的人,看到第一筆資料居然索引值跑到幾百幾千去,看了就讓人不舒服。還好SQL Server中有指令可以讓我們修正年輕時的錯誤@@

 

 

解決方法

語法:

DBCC CHECKIDENT

(

table_name

[, { NORESEED | { RESEED [,new_reseed_value ] } } ]

)

[ WITH NO_INFOMSGS ]

 

引數

table_name

這是要檢查目前識別值之資料表的名稱。指定的資料表必須包含識別欄位。資料表名稱必須符合識別碼的規則。

NORESEED

指定不應變更目前的識別值。

RESEED

指定應變更目前的識別值。

new_reseed_value

這是要當做識別欄位之目前值使用的新值。

WITH NO_INFOMSGS

抑制所有參考訊息。

 

範例

將Team資料表之索引值,改為從1開始計算

DBCC CHECKIDENT(“TEAM”, RESEED, 1)

 

 

參考網址

DBCC CHECKIDENT (Transact-SQL)

4.4.2 使用DBCC CHECKIDENT来查看和纠正IDENTITY种子

沒有留言: