Als u alle beperkingen in de database wilt uitschakelen, voert u deze code uit:
-- disable all constraints
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
Om ze weer in te schakelen, voer je uit:(de afdruk is natuurlijk optioneel en het geeft alleen de tabellen weer)
-- enable all constraints
exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
Ik vind het handig bij het vullen van gegevens van de ene database naar de andere. Het is een veel betere benadering dan beperkingen op te heffen. Zoals je al zei, is het handig wanneer alle gegevens in de database worden verwijderd en opnieuw worden ingevuld (bijvoorbeeld in een testomgeving).
Als u alle gegevens verwijdert, kan deze oplossing nuttig zijn.
Soms is het ook handig om alle triggers uit te schakelen, je kunt de volledige oplossing hier zien.