刪除表的記錄以後,如何使新記錄的編號仍然從1開始

2021-04-16 19:43:18 字數 1599 閱讀 9589

有兩種方法:

方法1:

truncate table 你的表名 --這樣不但將資料刪除,而且可以重新置位identity屬性的字段。

方法2:

delete from 你的表名

dbcc checkident(你的表名,reseed,0) --重新置位identity屬性的字段,讓其下個值從1開始。

刪除表中的所有行,而不記錄單個行刪除操作。truncate table 在功能上與沒有 where 子句的 delete 語句相同;但是,truncate table 速度更快,使用的系統資源和事務日誌資源更少。

transact-sql 語法約定

truncate table 

[ ]

table_name

[ ; ]

與 delete 語句相比,truncate table 具有以下優點:

truncate table 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。若要刪除表定義及其資料,請使用 drop table 語句。

如果表包含標識列,該列的計數器重置為該列定義的種子值。如果未定義種子,則使用預設值 1。若要保留標識計數器,請使用 delete。

不能對以下表使用 truncate table:

對於具有以上乙個或多個特徵的表,請使用 delete 語句。

truncate table 不能啟用觸發器,因為該操作不記錄各個行刪除。有關詳細資訊,請參閱 create trigger (transact-sql)。

microsoft sql server 2005 能夠刪除或截斷有 128 個以上的區的表,而不必對需要刪除的所有區保持同時鎖定。有關詳細資訊,請參閱

刪除並重新生成大型物件

。database_name

資料庫的名稱。

schema_name

表所屬架構的名稱。

table_name

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

所需的最低許可權是對 table_name 的 alter 許可權。truncate table 許可權預設授予表所有者、sysadmin 固定伺服器角色的成員、db_owner 和 db_ddladmin 固定資料庫角色的成員,並且不可轉移許可權。但是,可以在諸如儲存過程這樣的模組中加入 truncate table 語句,然後為使用 execute as 子句的模組授予適當的許可權。有關詳細資訊,請參閱

使用 execute as 建立自定義許可權集

。以下示例刪除jobcandidate表中的所有資料。select 語句放在 truncate table 語句之前和之後以比較結果。

use adventureworks;

goselect count(*) as beforetruncatecount

from humanresources.jobcandidate;

gotruncate table humanresources.jobcandidate;

goselect count(*) as aftertruncatecount

from humanresources.jobcandidate;

go

如何刪除表中重複的記錄?

由於多種原因,在表中可能會有一些重複的記錄,有時需要刪除這些重複的記錄,那麼,如何刪除這些重複的記錄呢?現有如下的表 sql create table a 2 b number 1 表已建立。sql insert into a values 1 已建立 1 行。sql 已建立 1 行。sql 已建立...

MYSQL刪除表的記錄後如何使ID從1開始

方法1 truncate table 你的表名 這樣不但將資料全部刪除,而且重新定位自增的字段 方法2 delete from 你的表名 dbcc checkident 你的表名,reseed,0 重新定位自增的字段,讓它從1開始 方法3 如果你要儲存你的資料,介紹你第三種方法,by qinyi 用...

如何恢復刪除的微信記錄?恢復刪除記錄的方法

一,取得imei和uin破解enmicromsg.db密碼恢復 1.獲取imei imei是手機識別碼,每台手機都有乙個唯一的imei,獲取imei很簡單,只需在撥號頁面輸入 06 即可獲得15位數字的imei碼!2.獲取uin 其實,獲取uin有更簡便的方法 uin存放在system config...