Executando comandos shell no MS SQL Server 2005
Olá pessoal, esse é o meu primeiro artigo, espero que gostem!
Atualmente quando desenvolvemos softwares, sempre aparece uma rotina batch para executarmos, sendo assim, vou demonstrar uma outra maneira de executar um comando shell utilizando o Ms Sql Server 2005.
Exemplo: Imaginem um cenário onde teremos que copiar um arquivo texto de um determinado local para outro, onde o sistema deverá ler o arquivo e importar para o banco de dados.
Arquivo.bat à arquivo contendo as instruções batch
F: à Selecionando a unidade
Cd SAP\integração à Seleciona a pasta integração do sistema SAP
Copy Clientes.txt C:\ SSP\Importação à copia o arquivo a ser importado para a pasta importação do sistema SSP
Nesse ponto o sistema SSP pega o arquivo Clientes.txt e importa para sua base.
Vamos utilizar uma stored procedure chamada "xp_cmdshell" contida no banco de dados máster.
* Nesse artigo estou utilizando o MS Sql Server standard edition 2005 win32.
Vamos as configurações necessárias do Ms Sql Server 2005.
*Levo em consideração que o MS Sql Server 2005 já está instalado.
1 – Liberar a stored procedure “xp_cmdshell” para executar.
*Por questões de segurança vem desabilitada.
Vamos ao Sql Server Surface Área Configuration, demonstrado na figura abaixo.
Agora vamos clicar em “Surface area configuration for features”
Selecione a stored procedure “xp_cmdshell” e clique em “Enable xp_cmdshell” e em seguida “Apply” e “OK”.
Nesse ponto estamos com a stored procedure “xp_cmdshell” Liberada para executar os comando shell.
Vamos abrir o “MS Sql Server Management Studio” e adionar uma nova query.
Agora vamos montar um simples comando shell.
Vamos testar o comando “ping”
* O ping é um comando que basicamente verifica se sua conexão de rede está disponível.
Apos a execução do comando, e apresentado na guia results o resultado da execução.
Então pessoal, vocês podem executar qualquer comando shell, através do MS Sql Server 2005.
Bem pessoal, por hoje ficaremos aqui.
Espero que tenham gostado.
Um grande abraço.