重新計算自動編號

2021-04-01 19:42:28 字數 2159 閱讀 3854

/*刪除資料後,讓自動編號id從1算起有兩種方法.

1為truncate table tbname,它將表中資料全刪除的同時,id也全部清空從1開始.

2為不帶條件的將表中資料刪除後,再用dbcc checkident('tbname',noreseed|reseed,newid)清空id.其中tbname為表名,reseed為更正當前id值,newid為當前最大標識值

*/if exists(select name from sysobjects where xtype='u' and name='test')

drop table test

gocreate table test(

ta int identity(1,1),

tb varchar(10),

tc varchar(10))go

insert into test

select 'a','aa' union

select 'b','bb' union

select 'c','cc' union

select 'd','dd' 

go select * from test

go-------------------------------

1      a      aa

2      b      bb

3      c      cc

4      d      dd

-------------------------------

truncate table test

goselect * from test

go/*

-------------------------------

(所影響的行數為 0 行)

-------------------------------

*/-----再次插入值:

insert into test

select 'a','aa' union

select 'b','bb' union

select 'c','cc' union

select 'd','dd' 

go select * from test

go/*

-------------------------------

1      a      aa

2      b      bb

3      c      cc

4      d      dd

-------------------------------

id仍從1起

*/-----方法2:用dbcc checkident:

delete test

dbcc checkident('test',reseed,0)

-----再次插入值後檢視結果與方法1一樣.

-----其實dbcc checkident功能是自定義id值. 如想要下乙個id值從100算起,則將其第三個引數改為99,如想要下乙個id值從4算起,則可按如下方法做,

dbcc checkident('test',reseed,3)

insert into test

select 'a','aa' union

select 'b','bb' union

select 'c','cc' union

select 'd','dd' 

go select * from test

go/*

-------------------------------

1    a      aa

2    b      bb

3    c      cc

4    d      dd

4    a      aa

5    b      bb

6    c      cc

7    d      dd

-------------------------------

*/-----用該方法還可檢視最大id值:

dbcc checkident('test',noreseed)

***注意:方法1truncate table刪除資料不會記錄在日誌中,刪除時速度將全比delete tbname快,但如果有刪除觸發器,將不會被觸發.

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

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

SQL Server 如何重新恢復自動編號列的序號

在sql server中經常有這樣的問題 乙個表採用了自動編號的列之後,由於測試了好多資料,自動編號已累計了上萬個。現在正是要用這個表了,測試資料已經刪了,遺留下來的問題 就是 在錄入新的資料,編號只會繼續增加,已使用過的但已刪除的編號就不能用了,誰知道如何解決此問題?truncate命令不但會清除...

SQL Server 如何重新恢復自動編號列的序號

在sql server中經常有這樣的問題 乙個表採用了自動編號的列之後,由於測試了好多資料,自動編號已累計了上萬個。現在正是要用這個表了,測試資料已經刪了,遺留下來的問題 就是 在錄入新的資料,編號只會繼續增加,已使用過的但已刪除的編號就不能用了,誰知道如何解決此問題?truncate命令不但會清除...