SQL Server’da Truncate ve Delete Arasındaki Farklar

Herkese merhaba,

Bu yazıda SQL Server’da Truncate ve Delete arasındaki farklar hakkında bilgi vereceğim.

SQL Server’da hepimizin kullandığı Truncate ve Delete arasındaki farkları hepimiz merak etmişizdir.

  1. Her iki komutta tablonun yapısal içeriğini değil tablonun içindeki verileri siler.
  2. Truncate daha az log kaynağı tüketirken Delete komutu çok fazla log kaynağı tüketir. Bu yüzden Truncate komutu Delete komutundan daha hızlı çalışır nedenine gelince Delete komutu satırları tek tek siler ve sildiği her satır için bir transaction log girişi yapar.
  3. Delete komutunu kullanırken sorgumuza where şartını ekleyebilme imkanımız vardır. Truncate komutunda böyle bir imkan yoktur, tüm kayıtları siler.
  4. Eğer tablomuzda identity kolonu varsa, Delete yapıldığında kolon kaçıncı identity de kalmışsa kaldığı yerden saymaya devam eder. Truncate Table yapıldığında ise en baştan saymaya başlayacaktır.
  5. Tablonun üzerinde Delete işlemi için bir Trigger varsa, Truncate Table yaptığımızda Trigger tetiklenmez. Delete komutunda ise Trigger tetiklenir.
  6. Foreign Key içeren tablolara Truncate Table yapılmaz. Delete komutu kullanılmalıdır.

Görüldüğü üzere SQL Server’da Truncate ve Delete arasındaki farkları öğrenmiş olduk.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

1.648 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!