none
Identificar erro no SQL_cmd RRS feed

  • Pergunta

  • Pessoal

        Tenho que rodar o sqlcmd ou osql, conforme comando abaixo, só que  o script contém diversos comandos, qual seria a melhor maneira de identificar o erro caso haja, ou que tudo foi executado com sucesso ?

        Tentei utilizar o parametro -r, mais não consegui identificar qual seria a forma correta (0 ou 1)

    sqlcmd -S servidor -U sa -P xxxx -d base_teste -i "e:\suporte\processo.sql" -o "e:\suporte\log\retorno.txt"

       

    quarta-feira, 17 de setembro de 2014 12:51

Respostas

  • Neibala,

    Eu particularmente prefiro direcionar o erro para um arquivo, pois assim fica mais fácil de fazer qualquer análise e identificação de falhas, bem como, servirá como um histórico em determinando momento.

    Detalhe você pode utilizar as opções -o e -r1 em conjunto sim, dependendo da implementação.

    Veja este exemplo em que estou forçando um erro jogando tudo para um arquivo de retorno:

    SQLCMD -E -Master -Q "Select * from Sys.SysDatabase" -o "C:\ArquivoRetorno.txt" -r1


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com



    quarta-feira, 17 de setembro de 2014 14:20

Todas as Respostas

  • Neibala,

    Se você for utilizar o "-r" você não pode utilizar o "-o", tem que escolher um dos dois.

    Para mostrar todas as mensagens de erro, use 1.

    Exemplo:

    sqlcmd -S servidor -U sa -P xxxx -d base_teste -i "e:\suporte\processo.sql" -r1


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    quarta-feira, 17 de setembro de 2014 13:07
  • Neibala,

    Eu particularmente prefiro direcionar o erro para um arquivo, pois assim fica mais fácil de fazer qualquer análise e identificação de falhas, bem como, servirá como um histórico em determinando momento.

    Detalhe você pode utilizar as opções -o e -r1 em conjunto sim, dependendo da implementação.

    Veja este exemplo em que estou forçando um erro jogando tudo para um arquivo de retorno:

    SQLCMD -E -Master -Q "Select * from Sys.SysDatabase" -o "C:\ArquivoRetorno.txt" -r1


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com



    quarta-feira, 17 de setembro de 2014 14:20
  • Neibala,

    Se você for utilizar o "-r" você não pode utilizar o "-o", tem que escolher um dos dois.

    Para mostrar todas as mensagens de erro, use 1.

    Exemplo:

    sqlcmd -S servidor -U sa -P xxxx -d base_teste -i "e:\suporte\processo.sql" -r1


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    Tulio,

    Só um detalhe pode-se utilizar as opções -o e -r1 em conjunto sim, dependendo da forma que você esta fazendo a implementação do código.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com


    quarta-feira, 17 de setembro de 2014 14:27
  • Neibala,

    Se você for utilizar o "-r" você não pode utilizar o "-o", tem que escolher um dos dois.

    Para mostrar todas as mensagens de erro, use 1.

    Exemplo:

    sqlcmd -S servidor -U sa -P xxxx -d base_teste -i "e:\suporte\processo.sql" -r1


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    Tulio,

    Só um detalhe pode-se utilizar as opções -o e -r1 em conjunto sim, dependendo da forma que você esta fazendo a implementação do código.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com


    Galvão,

    Mas se você utilizar o "-o" e o "-r" junto, você só terá o resultado no arquivo, certo ?


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    quarta-feira, 17 de setembro de 2014 14:33
  • Junior

       Quero agradeço a sua dica, e aproveitar também para dizer em outros casos onde utilizo o parametro -i, utilizo dentro do script o parametro abaixo para direcionar o erro para um outro arquivo quando da erro.

    :ERROR $(ds_Path_File_Error)

    quarta-feira, 15 de outubro de 2014 17:13