Genel
SQL Server’da Bir Veritabanını Temizleme ve Identity Sütunlarını Reset’leme (SQL Reset Identities and Data)
Merhabalar; Çoğumuz biliriz. Oluşturduğumuz veritabanı, projemizde ilerledikçe testlerimiz sırasında deneme verileriyle dolar ve iyice karışır. Tüm veritabanınızı boşaltmak, identity sütunlarını reset’lemek ve ilk günkü haline getirmek için bir script yazmanız yeterli: /\Constraint & Trigger’ları devre dışı bırakma\/ exec sp\MSforeachtable ‘ALTER TABLE ? NOCHECK CONSTRAINT ALL’ exec sp\MSforeachtable ‘ALTER TABLE ? DISABLE TRIGGER ALL’ /\Bütün tablolardaki kayıtları silme\/ exec sp\MSforeachtable ‘DELETE ?’ /\Constraint & Trigger’ları yeniden etkinleştirme\/ exec sp\MSforeachtable ‘ALTER TABLE …
Merhabalar;
Çoğumuz biliriz. Oluşturduğumuz veritabanı, projemizde ilerledikçe testlerimiz sırasında deneme verileriyle dolar ve iyice karışır. Tüm veritabanınızı boşaltmak, identity sütunlarını reset’lemek ve ilk günkü haline getirmek için bir script yazmanız yeterli:
/*Constraint & Trigger'ları devre dışı bırakma*/
exec sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
exec sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'
/*Bütün tablolardaki kayıtları silme*/
exec sp_MSforeachtable 'DELETE ?'
/*Constraint & Trigger'ları yeniden etkinleştirme*/
exec sp_MSforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
exec sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'
/*Identity sütunlarını reset'leme (yani yeniden 1'den başlamalarını sağlama)*/
exec sp_MSforeachtable 'IF OBJECTPROPERTY(OBJECT_ID(''?''), ''TableHasIdentity'') = 1 BEGIN DBCC CHECKIDENT (''?'',RESEED,0) END'
Sadece 1 tablonun identity sütununu resetlemek için;
DBCC CHECKIDENT('table_name', RESEED, 0)
Bu yazı yazilimdilleri sitesinden alıntıdır.
Kaynak: http://www.yazilimdilleri.net/Yazilim-Ipucu-3491-SQL-Server-da-Bir-Veritabanini-Temizleme-ve-Identity-Sutunlarini-Reset-leme.aspx