IDENTITY列的乙個有用操作

2021-06-16 01:11:00 字數 1938 閱讀 5809

dbcccheckident

檢查指定表的當前標識值,如有必要,還對標識值進行更正。

語法dbcccheckident

('table_name'[,}

])引數'table_name'

是要對其當前標識值進行檢查的表名。指定的表必須包含標識列。

noreseed

指定不應更正當前標識值。

reseed

指定應該更正當前標識值。

new_reseed_value

是在標識列中重新賦值時要使用的值。

注釋如有必要,dbcccheckident會更正列的當前標識值。然而,如果標識列是使用notforreplication子句(在createtable或altertable語句中)建立的,則不更正當前標識值。

如果標識列上有主鍵或唯一鍵約束,無效標識資訊可能會導致錯誤資訊2627。

dbcccheckident('table_name',noreseed)不重置當前標識值。dbcccheckident返回乙個報表,它指明當前標識值和應有的標識值。

dbcccheckident('table_name')或

dbcccheckident('table_name',reseed)如果表的當前標識值小於列中儲存的最大標識值,則使用標識列中的最大值對其進行重置。

dbcccheckident('table_name',reseed,new_reseed_value)當前值設定為new_reseed_value。如果自建立表後沒有將行插入該錶,則在執行dbcccheckident後插入的第一行將使用new_reseed_value作為標識。否則,下乙個插入的行將使用new_reseed_value+1。如果new_reseed_value的值小於標識列中的最大值,以後引用該錶時將產生2627號錯誤資訊。

當前標識值可以大於表中的最大值。在此情況下,dbcccheckident並不自動重置當前標識值。若要在當前標識值大於列中的最大值時對當前標識值進行重置,請使用兩種方法中的任意一種:

執行dbcccheckident('table_name',noreseed)以確定列中的當前最大值,然後使用dbcccheckident('table_name',reseed,new_reseed_value)語句將該值指定為new_reseed_value。

將new_reseed_value置為很小值來執行dbcccheckident('table_name',reseed,new_reseed_value),然後執行dbcccheckident('table_name',reseed)。

結果集不管是否指定任何選項(針對於包含標識列的表;下例使用pubs的jobs表),dbcccheckident返回以下結果集(值可能會有變化):

checking

identityinformation:current

identityvalue'14',currentcolumnvalue'14'.

dbccexecutioncompleted.ifdbccprintederrormessages,contactyoursystemadministrator.

許可權dbcccheckident許可權預設授予表所有者、sysadmin固定伺服器角色和db_owner固定資料庫角色的成員且不可轉讓。

示例a.如有必要,重置當前標識值

下例在必要的情況下重置jobs表的當前標識值。

usepubs

godbcccheckident(jobs)

gob.報告當前標識值

下例報告jobs表中的當前標識值;如果該標識值不正確,並不對其進行更正。

usepubs

godbcccheckident(jobs,noreseed)

goc.強制當前標識值為30

下例強制jobs表中的當前標識值為30。

usepubs

godbcccheckident(jobs,reseed,30)

go

IDENTITY列的乙個有用操作

dbcc checkident 檢查指定表的當前標識值,如有必要,還對標識值進行更正。語法dbcc checkident table name 引數 table name 是要對其當前標識值進行檢查的表名。指定的表必須包含標識列。noreseed 指定不應更正當前標識值。reseed 指定應該更正當...

乙個有用的定理

今天 popoqqq的時候看到了乙個他不屑於證的定理 i 偶數c i,n i 奇數c i,n n不 等於0 怎麼證明呢?開啟口胡模式 n為奇數時顯然 無論選偶數 奇數,剩下的一定是奇數 偶數 n為偶數且n 2為奇數。那我們先考慮n 2的情況,即在n的一半選數。設選奇數的答案集合為 a1,a2,an ...

IDENTITY標識列的一些事

identity標識列的一些事 identity seed increment 可以定義乙個標識列。seed表示種子值 預設為1 increment表示增量 預設為1 一張表只能定義乙個標識列。一.identity列不能保證連續性 identity不能保證標識號是連續的,這是因為如果語句和事務失敗,...