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 tabletable[ * ]
add [ column ] column
type
alter table table
[ * ]
alter [ column ] column
alter table table
[ * ]
rename [ column ] column
to newcolumn
alter table table
rename to newtable
試圖更改的現存表的名稱.
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...