none
Como criar Script com SQL RRS feed

  • Pergunta

  • Gostaria de saber como criar um scrip que gere um alerta quando uma consulta for realizada no sql e nao obtiver nenhum resultado enviar uma notificação por e-mail?

    Obrigado.

    terça-feira, 19 de fevereiro de 2008 19:40

Respostas

  • Olá,


    é possível fazer de outra forma sim:  basta executar a query via linha de comando (há um utilitário do SQL pra isso, e, se não me engano, ele se chama tsql. Vem com o próprio SQL Server) e analisar a saída dele com um script, por exemplo, em PowerShell, que facilita bastante o tratamento de texto.


    []s,

    --
    Vinicius Canto
    MVP Windows Server - Admin Frameworks
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Bacharelando em Ciências da Computação - USP

    Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
    terça-feira, 4 de março de 2008 11:30
    Moderador

Todas as Respostas

  • ola,

    Isso acho que você terá que fazer via próprio SQL Server,  criar um trigger coisa nesse sentido já deu uma olhada nisso.

    Atenciosamente.
    domingo, 2 de março de 2008 13:14
  • Olá,


    é possível fazer de outra forma sim:  basta executar a query via linha de comando (há um utilitário do SQL pra isso, e, se não me engano, ele se chama tsql. Vem com o próprio SQL Server) e analisar a saída dele com um script, por exemplo, em PowerShell, que facilita bastante o tratamento de texto.


    []s,

    --
    Vinicius Canto
    MVP Windows Server - Admin Frameworks
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Bacharelando em Ciências da Computação - USP

    Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
    terça-feira, 4 de março de 2008 11:30
    Moderador
  • Buenas,

     

    Normalmente eu faço desta forma utilizando os objetos ADODB e CDO que o WSH possui:

     

    Code Snippet

    Const SMTPServer = "<IP SERVIDOR MAIL>"

    Const SMTPFrom = "<ENDEREÇO REMETENTE>"
    Const SMTPMailTO = "<DESTINATÁRIO1>;<DESTINATÁRIO2>;...;<DESTINATÁRION>"


     

    Const SQLServer = "<IP>,<PORTA>"
    Const SQLUserName = "<USUÁRIO>"
    Const SQLPassword = "<SENHA>"
    Const SQLDatabase = "<BANCO>"

    Set objConnection = CreateObject("ADODB.Connection")
    Set objRecordSet = CreateObject("ADODB.Recordset")

     

    objConnection.Open "Provider=SQLOLEDB;Data Source=" & SQLServer & ";Initial Catalog=" & SQLDatabase & ";User ID=" & SQLUserName & ";Password=" & SQLPassword & ";"


    objRecordSet.Open "<QUERY>", objConnection, 3, 3


    objRecordSet.MoveFirst

    If objRecordset.RecordCount <= 0 Then
     Dim strToElement
     Dim strMessage
     
     strMessage = "<CORPO DA MENSAGEM>"
     
     For Each strToElement In Split(SMTPMailTO,";")
      SendMail strToElement,"<ASSUNTO>", strMessage, "<CAMINHO PARA ARQUIVOS ANEXOS>"
     Next

    End If

     

    Sub SendMail(mailTo, Subject, Message, Files)
     Dim objEmail, attFile
     
     Set objEmail = CreateObject("CDO.Message")
     
     objEmail.From = SMTPFrom
     objEmail.To = mailTo
     objEmail.Subject = Subject
     objEmail.Textbody = Message
     For Each attFile In Split(Files,"|")
      objEmail.AddAttachment(attFile)
     Next
     objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
     objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
     objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
     objEmail.Configuration.Fields.Update
     objEmail.Send
    End Sub

     

    Espero que este exemplo te ajude.

    segunda-feira, 14 de abril de 2008 14:29