Ако искате да деактивирате всички ограничения в базата данни, просто изпълнете този код:
-- disable all constraints
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
За да ги включите отново, стартирайте:(разпечатването не е задължително, разбира се и просто изброява таблиците)
-- enable all constraints
exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
Намирам го за полезен при попълване на данни от една база данни в друга. Това е много по-добър подход от премахването на ограниченията. Както споменахте, това е удобно, когато изтриете всички данни в базата данни и ги повторно попълните (да речем в тестова среда).
Ако изтривате всички данни, може да намерите това решение за полезно.
Също така понякога е удобно да деактивирате и всички тригери, можете да видите пълното решение тук.