程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> ACCESS自動編號字段的復位

ACCESS自動編號字段的復位

編輯:關於Access數據庫

說法一:

有兩種方法:
方法1:
truncate table 你的表名 --這樣不但將數據刪除,而且可以重新置位identity屬性的字段。

truncate table 你的表名 --這樣不但交數據刪除,而且可以重新置位identity屬性的字段。
方法2:
delete from 你的表名
delete from 你的表名
dbcc checkident(你的表名,reseed,0) --重新置位identity屬性的字段,讓其下個值從1開始
dbcc checkident(你的表名,reseed,0) --重新置位identity屬性的字段,讓其下個值從1開始

說法二:

1.TRUNCATE TABLE
刪除表中的所有行,而不記錄單個行刪除操作。

語法
TRUNCATE TABLE name

參數
name

是要截斷的表的名稱或要刪除其全部行的表的名稱。

注釋
TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統和事務日志資源少。

DELETE 語句每次刪除一行,並在事務日志中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放存儲表數據所用的數據頁來刪除數據,並且只在事務日志中記錄頁的釋放。

TRUNCATE TABLE 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 DELETE。如果要刪除表定義及其數據,請使用 DROP TABLE 語句。

對於由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應使用不帶 WHERE 子句的 DELETE 語句。由於 TRUNCATE TABLE 不記錄在日志中,所以它不能激活觸發器。

TRUNCATE TABLE 不能用於參與了索引視圖的表。

2.
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 語句中)創建的,則不更正當前標識值。

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

說法三:

如何定義自動編號字段的初始值和步進值?

問題:

 如何定義自動編號字段的初始值和步進值?
如何定義自動增加字段的初始值和步進值?
如何使刪除過數據的自動增加字段的開始值重新從1開始?

回答:

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

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) 

在 VBE 界面裡面用以下代碼:
docmd.runsql "ALTER TABLE tableName ALTER COLUMN OrderId COUNTER (1, 1)"

這裡要注意的是自動編號往往被用作標識記錄的唯一性,但是 Jet 在用 DDL 語句更改自動編號的同時不會保證修改後的自動編號仍然保持唯一性,因此會出現標識號重復的現象。要避免這一現象最好把自動編號設定為主鍵、或者不可重復。

Please realize that Jet won't prevent you from altering AutoNumber seed and increment values that produce duplicate values. However, if the AutoNumber column has been designated as the primary key or it contains a unique index, you will be prevented from saving rows with duplicates.

不過這些操作需要 JET 4.0。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved