自動編號的字段怎麼讓他重新從1開始編號

2021-04-13 07:24:37 字數 2791 閱讀 3639

關於access:

通過以下語句,你可以在建表的時候指定其起始值和步進值:

create table tblneworder2 (

orderid autoincrement (1000, 10),

itemid long, quantity long) 

alter table tblorder

alter column orderid counter (2000, 50) 

要重新開始:

alter table tablename

alter column orderid counter (1, 1) 

關於sqlserver:

alter table 表名 add 欄位名 int identity(1,1)

即,我們可以增加乙個欄位並指定它為自動編號字段。但是不能更改乙個欄位為自動編號字段(也或許我沒找到方法)。即,如果我們想給表增加自動編號字段,只能使用新增欄位的方法,而不能更改乙個已有的字段為自動編號字段。

至於如果需要更改自動編號字段計數起始值可以使用dbcc命令,下

dbcc checkident (表名,reseed,100)

自動編號欄位下乙個從101開始計。

以下詳細講述dbcc 語句:

dbcc checkident

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

語法dbcc checkident

( 'table_name'

[ ,

} ] )引數

'table_name'

是要對其當前標識值進行檢查的表名。表名必須符合識別符號規則。有關更多資訊,請參見使用識別符號。指定的表必須包含標識列。

noreseed

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

reseed

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

new_reseed_value

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

注釋如有必要,dbcc checkident 會更正列的當前標識值。然而,如果標識列是使用 not for replication 子句(在 create table 或 alter table 語句中)建立的,則不更正當前標識值。

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

對當前標識值所做的具體更正取決於引數規範。

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。如果自建立表後沒有將行插入該錶,則在執行 dbcc checkident 後插入的第一行將使用 new_reseed_value 作為標識。否則,下乙個插入的行將使用 new_reseed_value + 1。如果 new_reseed_value 的值小於標識列中的最大值,以後引用該錶時將產生 2627 號錯誤資訊。

當前標識值可以大於表中的最大值。在此情況下,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 '14', current column value '14'.

dbcc execution completed. if dbcc printed error messages, contact your system administrator.

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

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

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

use pubs

godbcc checkident (jobs)

gob. 報告當前標識值

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

use pubs

godbcc checkident (jobs, noreseed)

goc. 強制當前標識值為 30

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

use pubs

godbcc checkident (jobs, reseed, 30)

go

access 如何讓自動編號字段重新從1開始?

大家都知道資料庫表中自動編號欄位用一段時間後,把資料全刪了再新增資料時也不會從1開始的,而是接著以前的值加1或增加設定的步值,access,mysql,mssql等都是這樣的。怎麼才能讓資料清空後自動編號從1開始?怎麼才能讓access資料庫自動編號重新從1開始?有時候又想讓access資料庫自動編...

ACCESS自動編號重新從1開始

方法一 刪掉自動編號的字段,再建乙個同樣的自動編號字段。方法二 選擇工具,再選擇資料庫實用工具,單擊壓縮和修復資料庫,這樣就ok了.方法三 提示錯誤 無效的資料字段型別 嘗試失敗 1 在access裡新建乙個查詢。2 把檢視改為sql檢視。3 在裡面輸入 alter table 表名 alter c...

自動增量字段重新從1開始的方法

對於一些自動編號 自動增量 的字段,當刪除資料後,新增加的數字總是緊接著,而不是連續的。全部清空後,也不會從1開始。你可以使用下面的方法。sql2000或sql server2005及以上版本 truncate table 你的表 access 清空表後,修復壓縮一下資料庫。關於 truncate ...