Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann man Constraints für alle Tabellen deaktivieren und aktivieren?

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

Sie können auch Folgendes tun:

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

Um sie später zu aktivieren

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

Bearbeiten:
Wenn das Deaktivieren der Beschränkungen nicht ausreicht, müssen Sie die Beschränkungen löschen.

Wenn Sie die Tabellen löschen und neu erstellen, müssen Sie die Fremdschlüsseleinschränkungen anschließend neu erstellen.

Wenn Sie nur die Einschränkungen aufheben müssen, finden Sie möglicherweise Folgendes hilfreich:
SQL DROP TABLE-Fremdschlüsseleinschränkung

Wenn Sie ein Skript schreiben müssen, um die Einschränkungen zu löschen und zu erstellen, finden Sie vielleicht meinen Beitrag hier nützlicher:
SQL Server:Wie bekomme ich Fremdschlüsselreferenz aus information_schema?