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のすべてのバージョンで使用できるわけではありません。
注
- テーブル内のすべてのレコードを削除すると、すべてのインデント列のカウンターが最初から繰り返されます。
- 外部キーによって参照されるテーブル内のすべてのレコードを削除することはできません。
- テーブル内のレコード全体を削除する前に、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 TABLE 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に残ります。
-
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
-
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