3 回答

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
DBCC CHECKIDENT ('TestTable', RESEED, 0)GO
其中0是identity
起始值

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
應(yīng)該注意的是,如果所有數(shù)據(jù)都是通過(guò)DELETE
(即無(wú)WHERE
子句)從表中刪除的,那么只要a)權(quán)限允許它,并且b)沒有引用該表的FK(似乎是在這種情況下,使用TRUNCATE TABLE
將是優(yōu)選的,因?yàn)樗行?code>DELETE?并且同時(shí)重置IDENTITY
種子。
與DELETE語(yǔ)句相比,TRUNCATE TABLE具有以下優(yōu)點(diǎn):
使用較少的事務(wù)日志空間。
DELETE語(yǔ)句一次刪除一行,并在事務(wù)日志中為每個(gè)已刪除的行記錄一個(gè)條目。TRUNCATE TABLE通過(guò)釋放用于存儲(chǔ)表數(shù)據(jù)的數(shù)據(jù)頁(yè)來(lái)刪除數(shù)據(jù),并僅在事務(wù)日志中記錄頁(yè)面解除分配。
通常使用較少的鎖。
使用行鎖執(zhí)行DELETE語(yǔ)句時(shí),表中的每一行都被鎖定以進(jìn)行刪除。TRUNCATE TABLE總是鎖定表(包括模式(SCH-M)鎖)和頁(yè)面,但不是每行。
毫無(wú)例外,表格中留有零頁(yè)面。
執(zhí)行DELETE語(yǔ)句后,表仍可以包含空頁(yè)。例如,如果沒有至少一個(gè)獨(dú)占(LCK_M_X)表鎖,則無(wú)法釋放堆中的空頁(yè)。如果刪除操作不使用表鎖,則表(堆)將包含許多空頁(yè)。對(duì)于索引,刪除操作可以留下空頁(yè),盡管這些頁(yè)面將通過(guò)后臺(tái)清理過(guò)程快速釋放。
如果表包含標(biāo)識(shí)列,則該列的計(jì)數(shù)器將重置為為該列定義的種子值。如果未定義種子,則使用默認(rèn)值1。要保留身份計(jì)數(shù)器,請(qǐng)改用DELETE。
所以以下內(nèi)容:
DELETE?FROM?[MyTable];DBCC?CHECKIDENT?('[MyTable]',?RESEED,?0);
變得公正:
TRUNCATE?TABLE?[MyTable];
添加回答
舉報(bào)