SQL Server – TRUNCATE ve DELETE Arasındaki Fark

DELETE ile Kayıt Silme başlıklı yazıda DELETE komutunun kullanımı anlatılmıştır. Şimdi ise işlev olarak birbirine benzeyen TRUNCATE ile DELETE işlemlerinin arasındaki fark aşağıdaki öğrenci tablosu üzerinde anlatılacaktır.

Öğrenci tablomuzun silme işlemlerinden etkilenmemesi için öğrenci tablosundan ogrenci_yedek_1 ve ogrenci_yedek_2 olmak üzere 2 adet yedek oluşturuldu. Tablonuzun alan ve kayıtları ile beraber kopyalamak için SELECT INTO komutları kullanılır.

Tablomuzdaki tüm kayıtları silmek için DELETE komutunu kullandığımızda tüm kayıtları siler. Ancak kayıt silme işleminden sonra tabloya yeni eklenen kaydın otomatik artan ID (Numara) değeri bir önceki tabloda kalınan yerden devam eder. Yani ID değeri sıfırlanmaz.

Örneğin ogrenci_yedek_1 tablosundaki tüm kayıtları DELETE komutu ile silelim ve tablo içeriğini görüntüleyelim.

DELETE ile kayıtları sildiğimizde otomatik artan değer olarak belirlenen ogrenci_no alanının sıfırlanmayacağını ve bir önceki tablonun değerinden devam edeceğini söylemiştik. Bunu kontrol etmek için 1 adet kayıt ekleyip tablo içeriğini listeleyelim.

TRUNCATE komutu tabloyu sıfırlamak için kullanılır. DELETE komutundan farklı olarak ID (Numara) alanlarını da sıfırlar.

Eğer TRUNCATE komutunu kullanmayacak olsaydık ve ID’lerin de sıfırlanmasını istiyor olsaydık önce DROP TABLE komutu ile ilgili tabloyu siler, daha sonra CREATE TABLE komutu ile tabloyu yeniden oluştururduk. TRUNCATE komutu DROP TABLE ve CREATE TABLE komutlarına gerek kalmadan tablomuzu sıfırlamamızı sağlar.

Öğrenci numaralarının sıfırlanıp sıfırlanmadığını kontrol etmek için yeni bir kayıt ekleyip tablomuzun içeriğini listeleyelim.

About Seçil ŞEKERCİ HÜSEM

2010 yılından bu yana Bilişim Teknolojileri Öğretmeni olarak meslek liselerinde görev yapmaktayım.

View all posts by Seçil ŞEKERCİ HÜSEM →

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.