Access資料庫「自動編號」字段歸零

2022-03-19 12:54:57 字數 2176 閱讀 9383

access資料庫「自動編號」資料型別是乙個非常實用的型別,它可以很方便地幫助我們完成標識不同記錄id的工作。但是由於jet引擎的特性(sql server使用t-sql),當我們在access資料庫某張表中執行了刪除所有資料的操作後,被用來標識唯一id的字段將不再歸零(從頭開始計數),而是會繼續延續上次id遞增計數,我們可以用若干種方法解決這樣的問題,以下結合asp推薦兩種方法(以下方法都是建立在空資料表的「自動編號」歸零的前提下):

第一種:壓縮資料庫

用過access的朋友應該都知道在access的工具欄上我們可以通過:

點選「工具」=>「資料庫實用工具」=>「壓縮和修復資料庫」來完成對資料庫的壓縮和修復工作,當這項工作完成時,access各空資料表的「自動編號」欄位也會做歸零操作。

而我們也可以用asp來完成這項工作,以下是壓縮資料庫主要sub:

<

%subcompactdb(strdbfilename)

setfso 

=createobject("

scripting.filesystemobject")

dimstrolddb

strolddb 

=dim

strnewdb

strnewdb ="

new"

&strdbfilename)

iffso.fileexists(strolddb) 

then

'壓縮資料庫

setjro

=server.createobject(

"jro.jetengine")

strpvd ="

provider=microsoft.jet.oledb.4.0;data source=

"jro.compactdatabase strpvd 

&strolddb , strpvd 

&strnewdb

setjro

=nothing

'刪除舊的資料庫檔案

fso.deletefile strolddb

'將壓縮好的資料庫檔案拷貝回來

fso.movefile strnewdb, strolddb

response.write 

"資料庫壓縮完畢!

"else

response.write 

"找不到指定的資料庫檔案!

"endif

setfso 

=nothing

end sub

%>

我們可以很輕鬆地使用完成呼叫。

第二種:sql語句

如果你了解sql裡alter table的用法,這一切將變得非常簡單:

alter table — 更改表屬性

alter table table

[ * ]

add [ column ] column

type

alter table table

[ * ]

alter [ column ] column

alter table table

[ * ]

rename [ column ] column

to newcolumn

alter table table

rename to newtable

table

試圖更改的現存表的名稱.

column

現存或新的列名稱.

type

新列的型別.

newcolumn

現存列的新名稱.

newtable

表的新名稱.

alter

從被更名的列或表返回的資訊.

error

如果乙個列或表不存在返回的資訊.

我們解決access資料庫「自動編號」字段自動歸零可以這樣完成:

alter

table

tablename 

alter

column

orderid counter (1, 

1)其中column關鍵字可以省略,下面這樣也是可以的:

alter

table

tablename 

alter

orderid counter (1, 

1)剩下的交給asp執行sql語句完成就可以了,這裡不再贅述。

ACCESS資料庫重新編號自動編號字段

本文逐步介紹了如何在 access 中重置 自動編號 字段值。在 access 中刪除某個表中的一些行或所有行時,自動編號 字段不會自動重置。要重置 自動編號 字段值並重新整理引用表中的 自動編號 值,必 需手動執行一些任務。注意 在執行下面的步驟之前必須備份資料庫。重置單個表中的 自動編號 字段 ...

Access資料庫中自動編號字段重置為1

在清空一張acess資料庫表後,在重新增資料之前,希望此表的自動編號能從1開始,怎麼辦呢?下面的方法告訴我們,除了通過轉存資料庫表的方法外,還有幾種更簡單的方法 方法一 前提 資料庫錶可帶內容進行自動編號更新 開啟資料庫,切換到 設計檢視 刪掉那個自動編號的字段,再建乙個同樣的自動編號字段即可。方法...

取得Access自動編號值

我覺的這不應該是個問題,以前想解決,沒解決了,今天終於 下定決心,一定要解決。雖暫時用不著,也許以後用的著。其實很簡單,在sql server裡有個全域性變數 identity,他用來記錄當前鏈結產生的自動加1的值,這個變數在access裡也可以用,呵呵,一家的產品嘛。以下 是在dotnet 2.0...