Inquiridor
trigger no Sql Server 2008

Pergunta
-
Boas, tenho uma base dados com o nome LOJA, e nela tenho uma tabela com o nome produtos com três campo essenciais (ID ; Nome ; Codigo).
Gostaria de saber como criar um trigger e anexa-lo a esta tabela por formas a que quando um novo registo fosse inserido ele chama-se um procedimento e este procedimento um ficheiro .bat que esta na dorectoria (C:\ficheiros\run.bat) e levasse com ele estes três paramentros que recebeu. chamaria assim o .bat : run.bat ID Nome Codigo.
Alguem me pode dar uma ajuda em como criar um trigger ?
Obrigado
MCSE ; CCNA ; SCJP
- Editado Agentelu sexta-feira, 28 de setembro de 2012 01:08
- Movido Roberson Ferreira _ sexta-feira, 28 de setembro de 2012 12:41 (De:SQL Server - Desenvolvimento Geral)
Todas as Respostas
-
Pelo que entendi você está querendo executar um arquivo bat por dentro do SQL.
Primeiramente preciso lhe dizer que isso não é o ideal. É bom que o SQL seja responsável por coisas inerentes a ele próprio. Por isso não é bom que ele tenha que rodar aplicativos, executar bat's, etc.
Dá pra fazer, mas essas coisas não deviam ser de responsabilidade do banco, mas sim, de seu front-end (aplicação).
Contudo, caso não tenha outra opção, você terá que criar uma trigger de inserção e utilizar o procedimento xp_cmdshell (que precisa ser habilitado no banco).
Dê uma olhada em: http://www.devmedia.com.br/executando-comandos-shell-no-ms-sql-server-2005/5250
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Sugerido como Resposta Junior Galvão - MVPMVP segunda-feira, 1 de outubro de 2012 17:27
-
Olhando para o senario que lhe apresentei, e visto não ser a opção ideal, o que me sugere ? preciso que sempre que um novo registo entre para a tabela ele chame um .bat e passe os parametros, numa thread independente, ou seja o que o .bat vai fazer nao é da responsabilidade do SQL. preciso apenas que o sql invoce o .bat e lhe entregue os dados que acabaram de ser inseridos
MCSE ; CCNA ; SCJP
-
Agenteu,
Bom, você é dono do seu ambiente e sabe melhor do que nós dos seus riscos, mas uma possibilidade seria utilizar o comando XP_CMDShell dentro do Trigger para chamar este arquivo .bat em conjunto com o comando SQLCMD.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Sugerido como Resposta Junior Galvão - MVPMVP segunda-feira, 1 de outubro de 2012 17:28