quarta-feira, 28 de novembro de 2012

Como executar um PING com T-SQL e CmdShell

Para executar um ping utilizando T-SQL, precisamos do XP_CmdShell. Abaixo segue o script para executar o ping e armazenar o resultado em uma tabela temporária.

  DECLARE @sql    NVARCHAR(500),
        @Server VARCHAR(500),
        @NPings VARCHAR(500)

SELECT @Server = '192.168.0.16',
       @NPings = '5'

SET @sql = 'EXECUTE XP_CMDSHELL ''ping '
           + Ltrim(Rtrim(@Server)) + ' -n '
           + Cast(@NPings AS VARCHAR(10)) + ''''

CREATE TABLE #pingtemp
  (
     line VARCHAR(2000)
  )

INSERT INTO #pingtemp
            (line)
EXECUTE Sp_executesql
  @sql

SELECT *
FROM   #pingtemp

DROP TABLE #pingtemp 


Caso o CmdShell esteja bloqueado em seu servidor, utilize o seguinte código para liberá-lo:


EXEC master.dbo.Sp_configure
  'show advanced options',
  1

RECONFIGURE;

EXEC master.dbo.Sp_configure
  'xp_cmdshell',
  1;

RECONFIGURE;  


--
Leia o meu livro sobre ETL com SSIS 2012 http://www.erica.com.br/detalhes.asp?cod=4094

Nenhum comentário:

Postar um comentário

Leave your comment here!