熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

IDENTITY列的檢查指定表的當前標識值

2013-11-23 18:58:32  來源: Java核心技術 

  DBCC CHECKIDENT
  檢查指定表的當前標識值如有必要還對標識值進行更正
  
  語法
  DBCC CHECKIDENT
  ( table_name
  [ { NORESEED
  | { RESEED ][ new_reseed_value ] }
  }
  ]
  )
  
  參數
  table_name
  是要對其當前標識值進行檢查的表名指定的表必須包含標識列
  
  NORESEED
  指定不應更正當前標識值
  
  RESEED
  指定應該更正當前標識值
  
  new_reseed_value
  是在標識列中重新賦值時要使用的值
  
  注釋
  如有必要DBCC CHECKIDENT 會更正列的當前標識值然而如果標識列是使用 NOT FOR REPLICATION 子句(在 CREATE TABLE 或 ALTER TABLE 語句中)創建的則不更正當前標識值
  如果標識列上有主鍵或唯一鍵約束無效標識信息可能會導致錯誤信息
  
  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如果自創建表後沒有將行插入該表則在執行 DBCC CHECKIDENT 後插入的第一行將使用 new_reseed_value 作為標識否則下一個插入的行將使用 new_reseed_value + 如果 new_reseed_value 的值小於標識列中的最大值以後引用該表時將產生 號錯誤信息
  
  當前標識值可以大於表中的最大值在此情況下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)
  
  結果集
  不管是否指定任何選項(針對於包含標識列的表下例使用 pubs 數據庫的 jobs 表)DBCC CHECKIDENT 返回以下結果集(值可能會有變化)
  
  Checking identity information: current identity value current column value
  DBCC execution completed If DBCC printed error messages contact your system administrator
  
  權限
  DBCC CHECKIDENT 權限默認授予表所有者sysadmin 固定服務器角色和 db_owner 固定數據庫角色的成員且不可轉讓
  
  示例
  A 如有必要重置當前標識值
  下例在必要的情況下重置 jobs 表的當前標識值
  
  USE pubs
  GO
  DBCC CHECKIDENT (jobs)
  GO
  
  B 報告當前標識值
  下例報告 jobs 表中的當前標識值如果該標識值不正確並不對其進行更正
  
  USE pubs
  GO
  DBCC CHECKIDENT (jobs NORESEED)
  GO
  
  C 強制當前標識值為
  下例強制 jobs 表中的當前標識值為
  
  USE pubs
  GO
  DBCC CHECKIDENT (jobs RESEED )
  GO
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26059.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.