«

»

nov 23

Executar script SQL Server via linha de comando

O executável “Sqlcmd” do SQL Server permite executar um script através de linha de comando, isso é bastante útil quando se tem um arquivo de script muito grande que não pode ser aberto através do SQL Management Studio.

Para utilizar esse programa, basta abrir um prompt de comando e utilizar o comando “Sqlcmd”

A sintaxe é a seguinte:
usage: Sqlcmd [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w screen width]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-c cmdend] [-L list servers[clean output]]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-m errorlevel] [-V severitylevel] [-W remove trailing spaces]
[-u unicode output] [-r[0|1] msgs to stderr]
[-i inputfile] [-o outputfile] [-z new password]
[-f | i:[,o:]] [-Z new password and exit]
[-k[1|2] remove[replace] control characters]
[-y variable length type display width]
[-Y fixed length type display width]
[-p[1] print statistics[colon format]]
[-R use client regional setting]
[-b On error batch abort]
[-v var = "value"...] [-A dedicated admin connection]
[-X[1] disable commands, startup script, enviroment variables [and exit]]
[-x disable variable substitution]
[-? show syntax summary]

Exemplo de sintaxe:
sqlcmd -S [server] -d [database] -U [usuario] -P [senha] -i [script.sql] -o [log.txt]

Sobre o autor

educoutinho

6 comentários

Pular para o formulário de comentário

  1. Joffre

    Cara, me ajuda com uma dúvida por favor.
    Eu uso o seguinte comando para acessar o servidor e criar uma nova base:
    - sqlcmd -S srv-tsbd\sql2k -i TS_F_SQL2K_JO1
    - Go
    Pronto, a base foi criada. Agora eu preciso criar as tabelas dessa base, mas elas estão em vários arquivos .sql, por exemplo:
    D:\CriarTabelas\Usuario\Usuario.sql
    D:\CriarTabelas\Fornecedor\Fornecedor.sql
    D:\CriarTabelas\Cargo\Cargo.sql
    E não podem ser colocadas em apenas um arquivo. Como devo proceder?

    Agradeço se puder me ajudar.

  2. educoutinho

    Olá Joffre, tente o seguinte:

    sqlcmd -S [server] -d [database] -U [usuario] -P [senha] -i “D:\CriarTabelas\Usuario\Usuario.sql”

  3. Lucas

    Opaa blza ?

    Aqui tem como eu saber se a query foi executada sem erros ? igual no SSMS , quando vem lah em baixo.

    Vlww caraa..

    1. educoutinho

      Olá Lucas, os erros de execução da query SQL serão apresentados no prompt que você executou o comando.

      Se você quer obter informações do retorno e com base nisso tomar algum tipo de ação, você poderia criar um programa simples em alguma linguagem de programação que abre a conexão com o banco, executa o comando e no caso de erro toma alguma outra ação.

  4. Denis Galvani

    Há como eu exportar toda a definição da base de dados. Como o “Gerar scripts” do SSMS?

  5. lucas

    Olá

    meu script começa com “Use [database]” e na linha abaixo eu declarouma variável e depois faço um cursor. mas quando executo no prompt da a seguinte resposta:

    “Changed database context to ‘DBFR’.

    (0 linhas afetadas)”

    sabe me informar porque ele só passar na primeira linha que contem “use [database]” e não termina de executar as demais linhas?

    obrigado.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>