日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DBCC CHECKIDENT

發(fā)布時間:2025/4/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DBCC CHECKIDENT 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
語法 DBCC CHECKIDENT

(

????????table_name

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

)

[ WITH NO_INFOMSGS ] 參數(shù) table_name

是要對其當(dāng)前標(biāo)識值進行檢查的表名。指定的表必須包含標(biāo)識列。表名必須符合標(biāo)識符規(guī)則。

NORESEED

指定不應(yīng)更改當(dāng)前標(biāo)識值。

RESEED

指定應(yīng)該更改當(dāng)前標(biāo)識值。

new_reseed_value

用作標(biāo)識列的當(dāng)前值的新值。

WITH NO_INFOMSGS

取消顯示所有信息性消息。

結(jié)果集

無論是否為包含標(biāo)識列的表指定了任何選項,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. 注釋

對當(dāng)前標(biāo)識值所做的具體更正取決于參數(shù)規(guī)范。

DBCC CHECKIDENT 命令 標(biāo)識更正或所做的更正

DBCC CHECKIDENT ( table_name, NORESEED )

不重置當(dāng)前標(biāo)識值。DBCC CHECKIDENT 將返回標(biāo)識列的當(dāng)前標(biāo)識值和當(dāng)前最大值。如果這兩個值不相同,則應(yīng)重置標(biāo)識值,以避免值序列中的潛在錯誤或空白。

DBCC CHECKIDENT ( table_name )

或者

DBCC CHECKIDENT ( table_name, RESEED )

如果表的當(dāng)前標(biāo)識值小于標(biāo)識列中存儲的最大標(biāo)識值,則使用標(biāo)識列中的最大值對其進行重置。

DBCC CHECKIDENT ( table_name, RESEED, new_reseed_value )

將當(dāng)前標(biāo)識值設(shè)置為 new_reseed_value。如果自從創(chuàng)建表以來未在表中插入任何行,或者已使用 TRUNCATE TABLE 語句刪除所有行,則在運行 DBCC CHECKIDENT 之后插入的第一行將使用 new_reseed_value 作為標(biāo)識。否則,插入的下一行將使用 new_reseed_value + 當(dāng)前增量值。

如果該表不為空,那么將標(biāo)識值設(shè)置為小于標(biāo)識列中的最大值的數(shù)字時,將會出現(xiàn)下列情況之一:

  • 如果標(biāo)識列中存在 PRIMARY KEY 或 UNIQUE 約束,則隨后在表中執(zhí)行插入操作時將生成錯誤消息 2627,原因是生成的標(biāo)識值將與現(xiàn)有值沖突。
  • 如果不存在 PRIMARY KEY 或 UNIQUE 約束,則隨后的插入操作將產(chǎn)生重復(fù)的標(biāo)識值。

異常

下表列出了 DBCC CHECKIDENT 不自動重置當(dāng)前標(biāo)識值時的條件,并提供了重置該值的方法。

條件 重置方法

當(dāng)前標(biāo)識值大于表中的最大值。

  • 執(zhí)行 DBCC CHECKIDENT (table_name, NORESEED) 可以確定列中的當(dāng)前最大值,然后指定該值作為 DBCC CHECKIDENT (table_name, RESEED, new_reseed_value) 命令中的 new_reseed_value。

或者

  • 在將 new_reseed_value 設(shè)置為非常低的值的情況下執(zhí)行 DBCC CHECKIDENT (table_name, RESEED, new_reseed_value),然后運行 DBCC CHECKIDENT (table_name, RESEED) 以更正該值。

刪除表中的所有行。

在將 new_reseed_value 設(shè)置為所需開始值的情況下執(zhí)行 DBCC CHECKIDENT (table_name, RESEED, new_reseed_value)。

更改種子值

種子值是針對裝入表的第一行插入到標(biāo)識列的值。所有后續(xù)行都包含當(dāng)前標(biāo)識值和增量值,其中當(dāng)前標(biāo)識值是為當(dāng)前表或視圖生成的最新標(biāo)識值。有關(guān)詳細(xì)信息,請參閱創(chuàng)建和修改標(biāo)識符列。

不能使用 DBCC CHECKIDENT 執(zhí)行下列任務(wù):

  • 更改創(chuàng)建表或視圖時為標(biāo)識列指定的原始種子值。
  • 重設(shè)表或視圖中的現(xiàn)有行的種子值。

若要更改原始種子值并重設(shè)所有現(xiàn)有行的種子值,必須刪除并重新創(chuàng)建標(biāo)識列,然后為標(biāo)識列指定新的種子值。當(dāng)表包含數(shù)據(jù)時,還會將標(biāo)識號添加到具有指定種子值和增量值的現(xiàn)有行中。無法保證行的更新順序。

權(quán)限

調(diào)用方必須擁有表,或者是 sysadmin 固定服務(wù)器角色、db_owner 固定數(shù)據(jù)庫角色或 db_ddladmin 固定數(shù)據(jù)庫角色的成員。

示例

A. 根據(jù)需要重置當(dāng)前標(biāo)識值

以下示例根據(jù)需要重置 AdventureWorks 數(shù)據(jù)庫中 Employee 表的當(dāng)前標(biāo)識值。

USE AdventureWorks;

GO

DBCC CHECKIDENT ("HumanResources.Employee");

GO

B. 報告當(dāng)前標(biāo)識值

以下示例報告 AdventureWorks 數(shù)據(jù)庫的 Employee 表中的當(dāng)前標(biāo)識值,但如果該標(biāo)識值不正確,不會進行更正。

USE AdventureWorks;

GO

DBCC CHECKIDENT ("HumanResources.Employee", NORESEED);

GO

C. 強制將當(dāng)前標(biāo)識值設(shè)為新值

以下示例強制將 Employee 表中的 EmployeeID 列中的當(dāng)前標(biāo)識值設(shè)置為 300。因為該表有現(xiàn)有行,因此下一個插入行將使用 301 作為值,即當(dāng)前標(biāo)識值加上 1(為該列定義的當(dāng)前增加值)。

USE AdventureWorks;

GO

DBCC CHECKIDENT ("HumanResources.Employee", RESEED, 300);

GO

轉(zhuǎn)自:http://msdn.microsoft.com/zh-cn/library/ms176057.aspx

轉(zhuǎn)載于:https://www.cnblogs.com/wenanry/archive/2009/12/07/1618852.html

總結(jié)

以上是生活随笔為你收集整理的DBCC CHECKIDENT的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。