Olá pessoal,
Mais uma dica rápida sobre SQL Server.
Com certeza você ja deve ter precisado desabilitar alguma trigger por algum motivo e provavelmente deve ter pensado e desabilitar tudo para ajustar algo.
Neste contexto entra esta postagem.
Segundo a MSDN criar uma trigger, é um tipo especial de procedimento armazenado que executa automaticamente quando um usuário tenta a modificação de dados especificado na tabela especificada. Microsoft ® SQL Server ™ permite a criação de várias triggers para qualquer instrução INSERT, UPDATE, ou DELETE.
Mas como desabilitar todas as triggers da nossa base?
Para isso vamos usar a dica da postagem de outra postagem, utilizando a procedure SP_MSFOREACHTABLE.
Veja a postagem : #QuickTip 4 - [SQL Server] Como executar um select count em todas as tabelas de uma base de dados
Os dois comandos abaixo fazem isso:
- /*Desabilitar todas as triggers de todas a tabelas da base de dados*/
- EXEC sp_MSforeachtable @command1="ALTER TABLE ? DISABLE TRIGGER ALL"
- /*ou*/
- EXEC sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'
/*Desabilitar todas as triggers de todas a tabelas da base de dados*/
EXEC sp_MSforeachtable @command1="ALTER TABLE ? DISABLE TRIGGER ALL"
/*ou*/
EXEC sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'
Ok, agora reabilitando todas as triggers novamente:
- /*Reabilitar todas as triggers de todas a tabelas da base de dados*/
- EXEC sp_MSforeachtable @command1="ALTER TABLE ? ENABLE TRIGGER ALL"
- /*ou*/
- EXEC sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'
/*Reabilitar todas as triggers de todas a tabelas da base de dados*/
EXEC sp_MSforeachtable @command1="ALTER TABLE ? ENABLE TRIGGER ALL"
/*ou*/
EXEC sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'
Se você quiser saber mais a respeito de triggers: clique aqui.
Simplificando e desmitificando.
Até a próxima.
Se alguém me serve, siga-me, e onde eu estiver, ali estará também o meu servo. E, se alguém me servir, meu Pai o honrará. (João 12:26)
Tags: sql, SQL Server 2005, sqlserver, SP_MSFOREACHTABLE, trigger, disable trigger all, enable trigger all