sql >> Databáze >  >> RDS >> Sqlserver

Jak zakázat omezení pro všechny tabulky a povolit je?

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

Můžete také chtít provést toto:

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

Chcete-li je povolit později

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

Upravit:
Pokud deaktivace omezení nestačí, budete muset omezení zrušit.

Pokud rušíte a znovu vytváříte tabulky, budete muset poté znovu vytvořit omezení cizího klíče.

Pokud jen potřebujete zrušit omezení, může se vám hodit toto:
SQL DROP TABLE omezení cizího klíče

Pokud potřebujete napsat skript, který zruší a vytvoří omezení, může být můj příspěvek zde užitečnější:
SQL Server:Jak získat odkaz na cizí klíč z information_schema?



  1. django.db.utils.InterfaceError:(0, '')

  2. Jednotky data a času v MySQL (úplný seznam)

  3. Recursion On Database Query k získání hierarchického výsledku pomocí Hibernate - Java

  4. Jboss mysql - Nebyl nalezen žádný vhodný ovladač pro jdbc