7 Temmuz 2011 Perşembe

Sql'de Truncate Table Kavramı

Sql'de bir tablomuzda bazı verileri silmek istediğimizde, Delete komutunu kullanırız. Başka bir alternatif yokturdur. Ama tablodaki tüm kayıtları silmek istersek, hem Delete, hem Truncate komutları sayesinde tüm tabloyu boşaltabiliriz.Yani Truncate komutu da Sql'de tüm tablodaki verileri boşaltmak amacıyla kullanılır.

Peki bu iki komut arasındaki fark nedir?

Kısaca, maddeler halinde yazalım.
  • Öncelikle, Truncate kavramı ile bir şarta bakmaksızın tüm tablomuzu boşaltırız. Delete komutunda Where şartı ile belli şartlara bağlayabiliriz.
  • Bence en önemli farklarından birisidir şimdiki maddemiz, Truncate Table yapınca, o tablodaki identity kolonumuz en baştan başlar. Ama Delete yaparsak, en son kaçıncı id'de kalmışsa, oradan devam eder.
  • Truncate Table, Transaction içerisinde kullanılırsa ve işlemimiz rollback olursa geri alınamazlar. Delete komutunda geri alabiliriz.
  • Truncate Table yaptığımızda, eğer o tablo üzerinde Delete Trigger'i varsa, bu trigger tetiklenmez. Delete komutlarında ise tetiklenir.
İşte Truncate Table ile Delete komutları arasındaki en temel fark bunlardır. Son olarak da syntaxlarını, nasıl yazıldıklarını gösterelim;
  • TRUNCATE TABLE Tablo1
  • DELETE FROM Table1
şart koymak istersek,
  • DELETE FROM Table1 WHERE ID=5

5 yorum:

Adsız dedi ki...

teşekkürler faydalı bir açıklama oldu.

Yasin MÜFTÜLER dedi ki...
Bu yorum yazar tarafından silindi.
Yasin MÜFTÜLER dedi ki...

Teşekkürler elinize sağlık net ve faydalı bir anlatım olmuş.

Adsız dedi ki...

eyvallah kısa ve öz

Adsız dedi ki...

TEŞEKKÜRLER