DB

【SQL Server】TRUNCATE TABLE でデータを高速削除

テーブル内のすべてのレコードを高速に削除する際には、DELETE文ではなくTRUNCATE TABLEを使うことをおすすめします。

本記事ではTRUNCATE TABLE についての概要をまとめます。

TRUNCATE TABLE の使い方

構文

TRUNCATE TABLE テーブル名

TRUNCATE TABLE はWHEREでの条件指定ができません。テーブルのすべてのレコードを削除するためです。
また、TRUNCATE TABLE はトランザクションでの制御が可能です。ロールバックすれば削除を取り消すことができます。

DELETE と TRUNCATE TABLEの違い

速度

DELETE文では1件ずつ実行されるため、レコード数が多いほど時間がかかってしまいます。
一方で、TRUNCATE TABLEでは一括削除するためレコード数が多くても高速削除ができます。

IDENTITY

DELETE文ではレコードを削除しても、IDENTITYの値はリセットされません。
一方で、TRUNCATE TABLEではIDENTITYの値がリセットされます。

下記のSQLでIDENTITYの現在値を確認することができます。

  SELECT IDENT_CURRENT('TEST') AS CurrentID

下記の画像のようにIDENTITYが3の状態でDELETE文を行ってもリセットは行われません。

TRUCATE TABLE を行うと、IDENTITYが1にリセットされます。

エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【経験者向け】レバテックキャリア

ITエンジニア専門の転職エージェントです。

元エンジニアなど高い専門性を持つアドバイザーが理想の求人を提案してくれます。

▼こんな方におすすめ
・20代後半~40代前半
・年収を上げたい
・スキルアップしたい
・手厚いサポートを受けたい

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です