/*刪除資料後,讓自動編號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命令不但會清除...