ACCESS自動編號欄位的複位

來源:互聯網
上載者:User

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。

如果不會用查詢或者 JET SQL 去參考以下文章中的動畫
http://access911.net/index.asp?board=4&recordid=77FAB11E1ADC

如何用查詢設計嚮導建立一個查詢
http://access911.net/down/eg/swf/createquery.swf

如何運行一段 jet sql 代碼
http://access911.net/down/eg/swf/runsql.swf

 

說明:些段文章內容來自:http://access911.net

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.