SORU
1 EKİM 2008, ÇARŞAMBA


Nasıl yabancı anahtar kısıtlamaları geçici olarak T-SQL kullanarak devre dışı bırakılabilir mi?

Ve yabancı anahtar kısıtlamaları SQL Server desteklenen devre dışı bırakıp yeniden etkinleştirmek? Ya benim tek seçenektirdropve sonrare-createkısıtlamaları?

CEVAP
2 EKİM 2008, PERŞEMBE


Eğer veritabanındaki tüm kısıtlamaları devre dışı bırakmak istiyorsanız bu kodu çalıştırın:

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

Onları tekrar açmak için, Çalıştır: (baskı tabii ki isteğe bağlıdır ve sadece tablolar listesi)

-- enable all constraints
exec sp_msforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"

Başka bir veritabanından veri doldururken yararlı buluyorum. Bırakarak kısıtlamaları çok daha iyi bir yaklaşımdır. Sizin de bahsettiğiniz gibi veritabanındaki tüm verileri silmek ve bunu (test ortamında ki) temizlemeden zaman kullanışlı geliyor.

Eğer tüm verileri silmek this solution yardımcı olmalıdır.

Ayrıca bazen de tetikleyiciler devre dışı bırakmak için kullanışlı, komple bir çözüm here görebilirsiniz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Besnik Ibrahimi

    Besnik Ibrah

    27 Mart 2010
  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • jkimisyellow...ish

    jkimisyellow

    8 Temmuz 2009