SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQLServerのTRUNCATETABLEコマンド

TRUNCATE TABLEステートメントは、SQLServerのテーブルからすべてのレコードを削除するために使用されます。このコマンドはDELETEコマンドと同様に機能しますが、WHERE句はありません。

SQLServerでのTRUNCATETABLEコマンドの構文

  TRUNCATE TABLE [ten _CSDL.] [ten_schema.] ten_bang 
[ WITH (PARTITIONS (so_phanvung
| so _phanvung TO so _p | so _phanvung TO so _p hanvung)];

変数名または変数値

ten_CSDL

それはあなた次第です。指定した場合、これはデータベースの名前です。

ten_scheme

オプション。これは、テーブルが属するスキーマの名前です(スキーマまたは名前空間として変換されます)。

ten_bang

レコードを削除するテーブル。

WITH(PARTITIONS(so_phanvung | so _phanvung TO so _phanvung)

オプションで、パーティションテーブルでのみ使用できます。指定した場合、so_phanvungは、このテーブルで削除するリージョンの番号です。複数のゾーンを削除するには、カンマを使用して値または数値パーティション値の範囲を区切ります。パーティション化されていないテーブルでこの句を使用すると、SQLServerはエラーを報告します。この機能は、SQLServerのすべてのバージョンで使用できるわけではありません。

  1. テーブル内のすべてのレコードを削除すると、すべてのインデント列のカウンターが最初から繰り返されます。
  2. 外部キーによって参照されるテーブル内のすべてのレコードを削除することはできません。
  3. テーブル内のレコード全体を削除する前に、ALTERTABLEとして優先順位を付ける必要があります。

SQL Serverでは、データを取得する必要がない場合は、レコード全体を削除するのが最速の方法です。テーブルがTRUNCATEの場合、行の削除は記録されないため、前の操作に戻すことはできません。 TRUNCATEは、DROPコマンドを使用してテーブルを削除したり、CREATEを使用して新しいテーブルを作成したりするよりも簡単です。以下の例を参照してください。

  TRUNCATE TABLE; 

この例では、テーブル内のすべてのレコードが削除されます。

上記のコマンドは、以下のDELETEコマンドと同等です。

  DELETE FROM nhanvien; 

これらのコマンドは両方とも、テーブル内のすべてのデータを削除します。違いは、DELETEコマンドを使用すると、TRUNCATEを使用したままにする場合に、削除する前に操作に戻ることができることです。

データベースの名前を使用した別の例を見てみましょう。

  TRUNCATE TABLE totn.danhba; 

この例では、totnという名前のデータベース内のすべてのリストエントリを削除します。

たとえばパーティションを使用

1つまたは1つのリージョンレコードを削除する場合は、WITHPARTITIONS句を指定してTRUNCATETABLEコマンドを使用します。

TRUNCATE TABLE nhanvien
WITH(PARTITIONS(1 TO 5、7));

この例では、テーブルはパーティションテーブルであり、TRUNCATETABLEステートメントはこのテーブルの1から5およびゾーン7の地域レコードを削除します。

よくある質問

Q: SQLServerでTRUNCATETABLEコマンドを実行した後、データベースを古い状態(ロールバック)にバックアップできますか?

回答: TRUNCATE TABLEコマンドは、トランザクションを使用してロールバックできます。以下の例。

  CREATE T ABLE bang_test (cot1 int); 


INSERT INTO bang_test VALUES (1);
INSERT INTO bang_test VALUES (2);

INSERT INTO bang_test VALUES (3);


-- Tạo chuyển tiếp
BEGIN TRAN;


-- Xóa bản ghi trong bảng
TRUNCATE TABLE dbo.bảng_test;


-- Rollback bảng đã xóa bản ghi
ROLLBACK;


SELECT * FROM bang_ test;

上記のSELECTステートメントは、以下のレコードの結果を返します。

 cot1 
----------
1
2
3

したがって、データベースの状態は古い状態に復元され、3つのレコードはstate_testに残ります。


  1. SQLServerのPIVOT句

    SQL Server(Transact-SQL)では、PIVOT句を使用すると、クロス集計を使用して、あるテーブルから別のテーブルにデータを転送できます。つまり、集計結果を取得して行から列に移動できます。 この例では、合計を計算してから、データテーブルの列に行を渡します。 PIVOT句の構文 SELECT cot_ dautien AS , [giatri_chuyen1], [giatri_chuyen2], … [giatri_chuyen_n] FROM () AS PIVOT ( ham_tong () FOR IN ([giatri_chuyen

  2. SQLServerのSELECTコマンド

    このチュートリアルは、SQL Server SELECTステートメント(T-SQL)を構文と例とともに使用するのに役立ちます。 SELECTは、SQLServerデータベース内の1つ以上のテーブルから結果を取得するために使用されるコマンドです。 構文SELECTステートメント 単純な形式では、SELECTステートメントの構文は次のとおりです。 SELECT biểu thức FROM bảng [WHERE điều kiện]; 完全な形式では、SQLServerのSELECTコマンドの構文は次のようになります。 SELECT [ALL | DISTINCT] [TOP