DBCC CHECKIDENT 重置數據庫標識列從某一數值開端。本站提示廣大學習愛好者:(DBCC CHECKIDENT 重置數據庫標識列從某一數值開端)文章只能為提供參考,不一定能成為您想要的結果。以下是DBCC CHECKIDENT 重置數據庫標識列從某一數值開端正文
DBCC CHECKIDENT(N'dbo.Orders', RESEED, 0);
DBCC CHECKIDENT 語法
DBCC CHECKIDENT
(
table_name
[ , { NORESEED | { RESEED [ , new_reseed_value ] } } ]
)
[ WITH NO_INFOMSGS ]參數
table_name
是要對其以後標識值停止檢討的表名。指定的表必需包括標識列。表名必需相符標識符規矩。
NORESEED
指定不該更改以後標識值。
RESEED
指定應當更改以後標識值。
new_reseed_value
用作標識列確當前值的新值。
WITH NO_INFOMSGS
撤消顯示一切信息性新聞。
成果集
不管能否為包括標識列的表指定了任何選項,DBCC CHECKIDENT 都前往以下信息(前往值能夠有所分歧):
Checking identity information: current identity value '290', current column value '290'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.正文
對以後標識值所做的詳細更正取決於參數標准。
DBCC CHECKIDENT 敕令 標識更正或所做的更正
DBCC CHECKIDENT ( table_name, NORESEED )
不重置以後標識值。DBCC CHECKIDENT 將前往標識列確當前標識值和以後最年夜值。假如這兩個值不雷同,則應重置標識值,以免值序列中的潛伏毛病或空白。
DBCC CHECKIDENT ( table_name )
或許
DBCC CHECKIDENT ( table_name, RESEED )
假如表確當前標識值小於標識列中存儲的最年夜標識值,則應用標識列中的最年夜值對其停止重置。
DBCC CHECKIDENT ( table_name, RESEED, new_reseed_value )
將以後標識值設置為 new_reseed_value。假如自從創立表以來未在表中拔出任何行,或許已應用 TRUNCATE TABLE 語句刪除一切行,則在運轉 DBCC CHECKIDENT 以後拔出的第一即將應用 new_reseed_value 作為標識。不然,拔出的下一即將應用 new_reseed_value + 以後增量值。
假如該表不為空,那末將標識值設置為小於標識列中的最年夜值的數字時,將會湧現以下情形之一:
假如標識列中存在 PRIMARY KEY 或 UNIQUE 束縛,則隨後在表中履行拔出操作時將生成毛病新聞 2627,緣由是生成的標識值將與現有值抵觸。
假如不存在 PRIMARY KEY 或 UNIQUE 束縛,則隨後的拔出操作將發生反復的標識值。
異常
下表列出了 DBCC CHECKIDENT 不主動重置以後標識值時的前提,並供給了重置該值的辦法。
前提 重置辦法
以後標識值年夜於表中的最年夜值。
履行 DBCC CHECKIDENT (table_name, NORESEED) 可以肯定列中確當前最年夜值,然後指定該值作為 DBCC CHECKIDENT (table_name, RESEED, new_reseed_value) 敕令中的 new_reseed_value。
或許
在將 new_reseed_value 設置為異常低的值的情形下履行 DBCC CHECKIDENT (table_name, RESEED, new_reseed_value),然後運轉 DBCC CHECKIDENT (table_name, RESEED) 以更正該值。
刪除表中的一切行。
在將 new_reseed_value 設置為所需開端值的情形下履行 DBCC CHECKIDENT (table_name, RESEED, new_reseed_value)。
更改種子值
種子值是針對裝入表的第一行拔出到標識列的值。一切後續行都包括以後標識值和增量值,個中以後標識值是為以後表或視圖生成的最新標識值。有關具體信息,請參閱創立和修正標識符列。
不克不及應用 DBCC CHECKIDENT 履行以下義務:
更改創立表或視圖時為標識列指定的原始種子值。
重設表或視圖中的現有行的種子值。
若要更改原始種子值偏重設一切現有行的種子值,必需刪除偏重新創立標識列,然後為標識列指定新的種子值。當表包括數據時,還會將標識號添加到具有指定種子值和增量值的現有行中。沒法包管行的更新次序。
權限
挪用方必需具有表,或許是 sysadmin 固定辦事器腳色、db_owner 固定命據庫腳色或 db_ddladmin 固定命據庫腳色的成員。
示例
A. 依據須要重置以後標識值
以下示例依據須要重置 AdventureWorks 數據庫中 Employee 表確當前標識值。
USE AdventureWorks;
GO
DBCC CHECKIDENT ("HumanResources.Employee");
GO
B. 申報以後標識值
以下示例申報 AdventureWorks 數據庫的 Employee 表中確當前標識值,但假如該標識值不准確,不會停止更正。
USE AdventureWorks;
GO
DBCC CHECKIDENT ("HumanResources.Employee", NORESEED);
GO
C. 強迫將以後標識值設為新值
以下示例強迫將 Employee 表中的 EmployeeID 列中確當前標識值設置為 300。由於該表有現有行,是以下一個拔出即將應用 301 作為值,即以後標識值加上 1(為該列界說確當前增長值)。
USE AdventureWorks;
GO
DBCC CHECKIDENT ("HumanResources.Employee", RESEED, 300);
GO