sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik beperkingen voor alle tabellen uitschakelen en inschakelen?

EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"
GO

Misschien wil je dit ook doen:

EXEC sp_MSforeachtable @command1="ALTER TABLE ? DISABLE TRIGGER ALL"
GO

Om ze daarna in te schakelen

EXEC sp_MSforeachtable @command1="ALTER TABLE ? ENABLE TRIGGER ALL"
GO

-- SQL enable all constraints - enable all constraints sql server
-- sp_MSforeachtable is an undocumented system stored procedure
EXEC sp_MSforeachtable @command1="ALTER TABLE ? CHECK CONSTRAINT ALL"
GO

Bewerken:
Als het uitschakelen van de beperkingen niet genoeg is, moet u de beperkingen laten vallen.

Als u de tabellen laat vallen en opnieuw maakt, moet u daarna de beperkingen voor externe sleutels opnieuw maken.

Als u alleen de beperkingen wilt laten vallen, vindt u dit misschien handig:
SQL DROP TABLE externe sleutelbeperking

Als je een script moet schrijven om de beperkingen te laten vallen en te creëren, vind je mijn post hier misschien nuttiger:
SQL-server:hoe krijg ik een refererende sleutelreferentie van information_schema?



  1. Master High Availability Manager (MHA) is gecrasht! Wat moet ik nu doen?

  2. Selecteer de laatste dagelijkse niet-nulwaarde met tijdzone

  3. Kolomnamen van Oracle DB aanhalingstekens

  4. Is het mogelijk om de tabelnaam als parameter in Oracle door te geven?