SQL Server: Mengkosongkan Tabel (TRUNCATE)

Perbedaan DROP TABLE dan TRUNCATE TABLE yaitu jika DROP akan menghapus semua isi tabel beserta struktur nya sementara TRUNCATE hanya akan mengosongkan TABLE saja.

Lalu bagaimana dengan DELETE FROM... tanpa menggunakan WHERE CLAUSE? TRUNCATE lebih ke mengembalikan TABLE ke kondisi awal saat baru dibentuk.

Kita bisa melihat perbedaannya saat table mempunyai kolom IDENTITY. Jika kolom IDENTITY sudah sampai angka 50 (dengan kenaikan 1). Jika kita gunakan DELETE kemudian insert data baru lagi nilai kolom IDENTITY akan menjadi 51. Sementara jika menggunakan TRUNCATE akan kembali ke 1.

Sintaks:

TRUNCATE TABLE [nama_database].[nama_schema].[nama_table];


Kemudian kita coba menghapus dengan query DELETE, dan INSERT lagi data baru.

DELETE FROM dbo.employee;

INSERT INTO dbo.employee (first_name, last_name) VALUES ('Laura','Hasan');

INSERT INTO dbo.employee (first_name, last_name) VALUES ('Hari','Kurniawan');

SELECT * FROM dbo.employee;

Hasilnya:


Tetapi jika kita menggunakan 
TRUNCATE seperti berikut:

TRUNCATE TABLE dbo.employee;

INSERT INTO dbo.employee (first_name, last_name) VALUES ('Gita','Susanti');

INSERT INTO dbo.employee (first_name, last_name) VALUES ('Iman','Setyawan');

SELECT * FROM dbo.employee;

Hasilnya:




Post a Comment

0 Comments