Sql Server truncate table Komutu

Herkese merhaba, Sql Server yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda truncate table komutunun kullanımını anlatacağım. Hadi başlayalım !
truncate table, bir tablo içerisindeki tüm verileri silmeye yarar ve yazım kuralı şu şekildedir;
truncate table tablo_adı;
Burada tablo_adı kısmına verilerini silmek istediğiniz tablonun adını yazmanız gerekiyor. Görüldüğü üzere where ile filtreleme yapılamıyor, tüm veriler silinebiliyor. E bu işlem delete sorgusu ile de yapılabilir diyebilirsiniz fakat truncate table komutunun delete sorgusuna göre avantajları elbette var. Sırayla bunlardan bahsedelim;
- delete sorgusuna göre çok daha hızlıdır,
- delete sorgusu satırları birer birer siler ve silinen her bir kayıt için işlem günlüğüne bir giriş kaydeder fakat truncate table komutu tablo verilerini depolamak için kullanılan sayfaları (page) serbest bırakarak verileri siler ve işlem günlüğüne her bir sayfayı kaldırdığında veri yazar. Dolayısıyla delete sorgusuna göre çok daha az log yazılır ve daha az disk alanı kullanılır,
- delete sorgusu her satırı ayrı ayrı sildiğinden satırları kilitler fakat truncate table komutu doğrudan tabloyu kilitler. Dolayısıyla daha az kilit (lock) oluşturulur,
- delete sorgusu sonucunda tabloda boş sayfalar kalabilir fakat truncate table komutu sonucunda boş sayfalar kalmaz.
Truncate table komutu aşağıdaki durumlarda çalıştırılamaz;
- verileri silinecek tablo içerisinde başka bir tabloya foreign key bulunuyorsa,
- viewlar üzerinde,
- edge kısıtlaması bulunan tablo ise.
Bu durumlarda truncate table yerinde delete sorgusu kullanılmalıdır. Ayrıca truncate table komutu sonrasında veri silinse bile o tablo üzerinde trigger varsa tetiklenmeyecektir. Son olarak truncate table sorgusu da rollback yapılabilir yani silinen veriler ilgili transaction içerisinde kalınmak şartıyla tekrardan geri getirilebilir, transaction sonlandıysa yani commit edildiyse transaction biteceği için silinen veriler de geriye getirilemeyecektir.
Evet Sql Server’da truncate table komutu kullanımı ve özellikleri bu şekilde. Tüm Sql Server yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.