Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como desabilitar restrições para todas as tabelas e habilitá-lo?

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

Você também pode querer fazer isso:
EXEC sp_MSforeachtable @command1="ALTER TABLE ? DISABLE TRIGGER ALL"
GO

Para habilitá-los depois
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

Editar:
Se desabilitar as restrições não for suficiente, você terá que descartar as restrições.

Se você estiver descartando e recriando as tabelas, terá que recriar as restrições de chave estrangeira posteriormente.

Se você precisar apenas eliminar as restrições, isso pode ser útil:
Restrição de chave estrangeira SQL DROP TABLE

Se você precisar escrever um script para descartar e criar as restrições, poderá achar meu post aqui mais útil:
SQL Server:Como obter referência de chave estrangeira de information_schema?