Quando se está importando dados para um banco, as constraints e triggers podem ser um chato obstáculo. Em alguns casos poder ser muito mais fácil desabilitar tudo e reativar no final do processo. Pesquisando sobre isso, encontrei essa ótima dica no StackOverflow.
Para desabilitar todas as constraints e triggers de todas as tabelas do banco:
exec sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT ALL"
exec sp_msforeachtable "ALTER TABLE ? DISABLE TRIGGER ALL"
Para habilitar:
exec sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL"
exec sp_msforeachtable "ALTER TABLE ? ENABLE TRIGGER ALL"
Alias, essa sp_msforeachtable é muito interessante e pode ser explorada de muitas formas diferentes. Testei no SQL Server 2008, mas deve funcionar no 2005 pelo menos.
Um detalhe a ser observado é que esse comando não desabilita constraint de PK nem UNIQUE.
TPodcast
7 Comments
Muito boa essa dica ..
é exatamente o que eu estava procurando na net ..
Vlw !!!
Obrigado cara…. Foi a salvação
Valeu! mais uma pra cachola!
Muito boa a dica !!!
Testei no SqlServer 2000 e foi de boa.
Valeu…
Muito Boa!!!! funciona !!!!
Show… comando extremamente útil!
Muito boa essa dica!!!