Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come disabilitare i vincoli per tutte le tabelle e abilitarlo?

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

Potresti anche voler fare questo:

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

Per abilitarli in seguito

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

Modifica:
Se la disabilitazione dei vincoli non è sufficiente, dovrai eliminare i vincoli.

Se stai eliminando e ricreando le tabelle, dovrai ricreare i vincoli di chiave esterna in seguito.

Se hai solo bisogno di eliminare i vincoli, potresti trovarlo utile:
vincolo di chiave esterna SQL DROP TABLE

Se hai bisogno di scrivere uno script per eliminare e creare i vincoli, potresti trovare più utile il mio post qui:
SQL Server:come ottenere un riferimento alla chiave esterna da information_schema?