Sql Server da kayıt silmek için Delete ve Truncate komutlarını kullanırız. Peki bu ikisi de kayıt siliyor madem bunların farkı ne diye bir soru sorabilirsiniz. Ben bu ikisinin birbirinden farkını bildiğim kadarıyla anlatmaya çalışacağım. Öncelikle bu iki komutun kalıplarını görelim:
delete from tabloadı where şart…
truncate table tabloadı
delete işlemi tablodan kayıt siler. Truncate ise tabloyu tüm özellikleriyle sıfırlar ve kayıtlar silinir.
İki komutun kullanılış kalıplarına baktığımızda delete işleminde şart ifadesi var ama truncate işleminde böyle bir şey yok. Bu demek oluyor ki biz delete işlemi ile belli bir aralıktaki kayıtları silebiliriz yani şarta göre belirlediğimiz kaydı ya da kayıtları silebiliriz. Truncate işlemi tabloyu tamamen siler.
Diyelim ki tablomuzda identity yani otomatik sayı yaptığımız bir alan var. Her kayıt eklediğimizde burası otomatik olarak artacaktır. Delete işlemi ile kayıt silip tekrar kayıt eklersek numara kaldığı yerden devam edecektir. Yani örneğin 3 tane kaydımız var ve biz üçüncü kaydı siliyoruz. Tekrar kayıt eklediğimizde bu numara 3 değil de artık 4 olacaktır.