none
Executar Stored Procedure via SQLCMD RRS feed

  • Pergunta

  • Bom dia a todos

    Tenho que disponibilizar uma atualização do meu sistema que é uma stored procedure onde esta fica agenda no sql server para realizar integração entre dois sistemas, porém tenho alguns clientes que possuem o sql server 2008 completo e outros utilizar o express 2008 por terem um volume de dados muito pequeno, porém o sql express não possui a opção de agendamento por essa razão pensei em criar um bat utilizando o sqlcmd para automatizar esse processo, porém gostaria de saber se os amigos sabem como eu faço para executar uma stored procedure via sqlcmd?

    quinta-feira, 18 de abril de 2013 12:00

Respostas

  • Caso ele de erro devido o - no nome da instancia execute assim:

    SQLCMD -S "EDER-PC" -U SA -P WIC-123 -Q "EXEC [PHARMACY-OUR].dbo.INTEGRAGPSPHARMACY"


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    • Marcado como Resposta eder.luca quinta-feira, 18 de abril de 2013 13:30
    quinta-feira, 18 de abril de 2013 12:35
    Moderador

Todas as Respostas

  • Eder,

    É o seguinte:

    Executar uma procedure via Windows Authentication:

    SQLCMD -S ServerName -E -Q "EXEC SuaBase.SeuSchema.SuaProcedure"

    Executar uma procedure via autenticação SQL

    SQLCMD -S ServerName -U Usuario -S Senha -Q "EXEC SuaBase.SeuSchema.SuaProcedure"

    Lembrando que é case sensitive, ou seja, Q é diferente de q aonde o Q executa e sai do SQL enquanto o q executa e pendura a conexão.

    Criado sua string do SQLCMD basta voce joga-la em um arquivo de texto do note pad, salvar tal arquivo como .bat e agendar sua execução do Task Scheduler do windows.


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    quinta-feira, 18 de abril de 2013 12:06
    Moderador
  • Eder, bom dia.

    Você pode criar um bat usando o comando bcp in e out

    quinta-feira, 18 de abril de 2013 12:13
  • Pessoal tentei o seguinte:

    SQLCMD -S EDER-PC -U SA -S WIC-123 -Q "EXEC PHARMACY-OUR.dbo.INTEGRAGPSPHARMACY" ao executar ele aparece senha e baixo digito e não acontece nada alguem saberia o que pode ter acontecido?

    quinta-feira, 18 de abril de 2013 12:26
  • Eder,

    Perdão, a senha é -P, e voce terá problema no nome de sua base se não adicionar [], tente assim:

    C:\Users\facaputo>SQLCMD -S EDER-PC -U SA -P WIC-123 -Q "EXEC [PHARMACY-OUR].dbo.INTEGRAGPSPHARMACY"


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    quinta-feira, 18 de abril de 2013 12:33
    Moderador
  • Vou testar obrigado
    quinta-feira, 18 de abril de 2013 12:34
  • Caso ele de erro devido o - no nome da instancia execute assim:

    SQLCMD -S "EDER-PC" -U SA -P WIC-123 -Q "EXEC [PHARMACY-OUR].dbo.INTEGRAGPSPHARMACY"


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    • Marcado como Resposta eder.luca quinta-feira, 18 de abril de 2013 13:30
    quinta-feira, 18 de abril de 2013 12:35
    Moderador
  • usando bcp por exemplo seria assim:

    bcp "select * from adventureworks2012.dbo.teste" queryout "c:\projetos\teste.txt" -S SPIW130\DCCORREA -T -n

    quinta-feira, 18 de abril de 2013 12:44
  • Pessoal deu certo ficou assim o meu bat:

    SQLCMD -S EDER-PC -U SA -P WIC-123 -Q "EXEC [PHARMACY-OUR].dbo.INTEGRAGPSPHARMACY"

    Obrigado novamente pela atenção.

    quinta-feira, 18 de abril de 2013 13:30