SORU
30 EYLÜL 2008, Salı


Nasıl bir veritabanı TSQL kullanarak tüm tabloları kesecek misin?

Test döngüsünün başında yeni veri ile yeniden istediğim bir veritabanı için bir test ortamı var. Tüm yeniden ilgilenmiyorum veritabanı - sadece "yeniden ayarlama" veri.

Tüm tabloları TSQL kullanarak tüm verileri kaldırmak için en iyi yolu nedir? Orada sistem saklı prosedürler, görünümler, vb. bu kullanılabilir mi? El ve dinamik olmayı tercih ederdim tablo her biri için kesme tablo tablolar yaratmak istemiyorum.

CEVAP
1 EKİM 2008, ÇARŞAMBA


Ne zaman muamele ile silme veri tablolarının hangi yabancı anahtar ilişkileri hangi temelde dava ile herhangi bir düzgün tasarlanmış bir veritabanı - devre dışı bırakmak tüm kısıtlamalar, tüm verileri Sil ve sonra yeniden etkinleştirmek kısıtlamaları

-- disable all constraints
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"

-- delete data in all tables
EXEC sp_MSForEachTable "DELETE FROM ?"

-- enable all constraints
exec sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"

Kısıtlamalar devre dışı bırakma hakkında daha fazla ve here tetikler

eğer bazı tabloların kimlik sütun varsa onları araştırma için isteyebiliriz

EXEC sp_MSforeachtable "DBCC CHECKIDENT ( '?', RESEED, 0)"

ARAŞTIRMA davranışı yepyeni masa ve BOL bazı verileri önceden yerleştirilmiş olan: biri arasında farklı olduğunu unutmayın

('Table_name', ARAŞTIRMA, newReseedValue) . DBCC CHECKIDENT

Geçerli bir kimlik değerine ayarlanır bu newReseedValue. Eğer hiçbir satır varsa o zamandan beri de tabloya eklenir ilk satır eklendiğinde oluşturuldu yürütme DBCC CHECKIDENT sonra kimliği newReseedValue kullanın. Aksi takdirde, bir sonraki satır eklenmiş olacak newReseedValue 1 kullanın. Eğer değer bu newReseedValue daha az. kimlik sütunundaki en büyük değer hata iletisi 2627 oluşturulur tablo sonraki başvurular.

Kısıtlamaları devre dışı bırakma kesecek kullanmaya izin vermiyor gerçeğine işaret için Robert sayesinde, kısıtlamalar kesilmesine, ve sonra yeniden

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Rugiagialia

    Rugiagialia

    1 Ocak 2008
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008
  • xCraash

    xCraash

    6 Temmuz 2012