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

NKD/SEARCH

Blogda ara