Pokud chcete deaktivovat všechna omezení v databázi, spusťte tento kód:
-- disable all constraints
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
Chcete-li je znovu zapnout, spusťte:(tisk je samozřejmě volitelný a pouze vypisuje tabulky)
-- enable all constraints
exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
Považuji to za užitečné při naplňování dat z jedné databáze do druhé. Je to mnohem lepší přístup než upustit od omezení. Jak jste zmínil, přijde vhod, když vypustíte všechna data z databáze a znovu ji naplníte (řekněme v testovacím prostředí).
Pokud odstraňujete všechna data, může být toto řešení užitečné.
Někdy je také užitečné zakázat všechny spouštěče, kompletní řešení můžete vidět zde.