SQL Server’da Veritabanınızda Bulunan Tablolardaki Tüm Kayıtları Silmek
Herkese merhaba,
Bu yazıda sizlere SQL Server’da veritabanınızda bulunan tablolardaki tüm kayıtların silinmesi hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda tabloların yedeğini alınıp sonrasında bu yedeğin veritabanına farklı bir ad ile geri yüklenmesi, sonraki aşamada tabloların içinin boşaltılması gerekebilir ya da istenebilir. Tabloların içinin boşaltılması noktasında aşağıdaki kod bloğu işinize yarayacaktır.
Uyarı : Bu işlemi canlı veritabanı üzerinde, çalışma yaptığınız veritabanı üzerinde, projeleriniz üzerinde denemeyin!
--Constraints ve Triggerları devre dışı bırakma
EXEC sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL';
EXEC sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL';
--Tüm tabloları silme işlemi
EXEC sp_MSforeachtable 'DELETE ?';
--Constraints ve Triggerları etkinleştirme
EXEC sp_MSforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL';
EXEC sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL';
--Identity içeren tablolardaki identity değerini sıfırlama
EXEC sp_MSforeachtable 'IF OBJECTPROPERTY(OBJECT_ID(''?''), ''TableHasIdentity'') = 1 BEGIN DBCC CHECKIDENT (''?'',RESEED,0) END';
Ben işlemi test etmek amacıyla Northwind veritabanı üzerinde çalıştırıyorum. Siz de kendiniz için uygun olan veritabanında test edebilirsiniz. Kodları Northwind veritabanı seçili iken çalıştırıyorum.
Görüldüğü üzere başarıyla çalıştırıldı. Şimdi tablolarımızı kontrol edelim.
SELECT *
FROM dbo.Categories;
SELECT *
FROM dbo.CustomerCustomerDemo;
SELECT *
FROM dbo.Customers;
Gördüğünüz üzere tablolarımızın içi boşalmış oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.