Jeśli chcesz wyłączyć wszystkie ograniczenia w bazie danych, po prostu uruchom ten kod:
-- disable all constraints
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
Aby je ponownie włączyć, uruchom:(wydruk jest oczywiście opcjonalny i zawiera tylko listę tabel)
-- enable all constraints
exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
Uważam to za przydatne podczas wypełniania danych z jednej bazy danych do drugiej. To znacznie lepsze podejście niż zrzucanie ograniczeń. Jak wspomniałeś, jest to przydatne przy usuwaniu wszystkich danych w bazie danych i ponownym ich wypełnianiu (powiedzmy w środowisku testowym).
Jeśli usuwasz wszystkie dane, to rozwiązanie może okazać się pomocne.
Czasami przydatne jest również wyłączenie wszystkich wyzwalaczy, pełne rozwiązanie można zobaczyć tutaj.