SQL Server via Prompt de Comando_ _ Silas Mendes _ Prosas Sobre SQL Server, Experiências de Campo e...

11
7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experiências de campo e mercado. http://silasmendes.com/dba/sql-server-via-prompt/ 1/11 SQL Server via prompt de comando? 20/10/2009 (http://silasmendes.com/dba/sql-server-via-prompt/) Silas Mendes (http://silasmendes.com/dba/author/silasmendes/) Etc & Tal (http://silasmendes.com/dba/category/uncategorized/) Em minha experiência pessoal já vivi uma situação onde durante a atualização do principal sistema da empresa, nosso contato no datacenter reclamou dizendo que não conseguia abrir o Management Studio para executar nossos scripts. A solução mais rápida? Enviei para o datacenter o procedimento de execução dos scripts via SQLCMD. Mas o que é isso? O SQLCMD é uma ferramenta que você utiliza para acessar instâncias SQL Server via prompt de comando (vulgo DOS). Não existem segredos, uma vez conectado, através de scripts você pode fazer tudo o que faria utilizando o Query Analyser ou o Management Studio. Apesar de ser uma excelente ferramenta, o SQLCMD tem suas limitações “gráficas”, no entanto em alguns cenários é a ferramenta ideal! Os exemplos que vou apresentar foram executados na minha estação de trabalho. Nela tenho instalado um SQL Server 2005. Minha instância é uma instância nomeada e é identificada como SQL05. Pra começar a conversa vamos ao prompt de comando (menu Iniciar > Executar > cmd). No prompt de comando, para conectar no meu SQL local (localhost), utilizando o SQLCMD, devo digitar o seguinte comando: sqlcmd –E –S LOCALHOSTSQL05 No comando acima estou conectando no SQL Server utilizando a autenticação Windows (- E) na instância SQL05 (-S), mas se for necessário conectar utilizando a autenticação do SQL Server, ficaria assim: sqlcmd –U SA –P senhateste –S LOCALHOSTSQL05 No exemplo acima, estou conectando no SQL utilizando o login SA do SQL Server (-U) com a senha senhateste (-P).

Transcript of SQL Server via Prompt de Comando_ _ Silas Mendes _ Prosas Sobre SQL Server, Experiências de Campo e...

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 1/11

    SQL Server via prompt de comando?

    20/10/2009 (http://silasmendes.com/dba/sql-server-via-prompt/) Silas Mendes(http://silasmendes.com/dba/author/silasmendes/) Etc & Tal(http://silasmendes.com/dba/category/uncategorized/)

    Em minha experincia pessoal j vivi uma situao onde durante a atualizao doprincipal sistema da empresa, nosso contato no datacenter reclamou dizendo que noconseguia abrir o Management Studio para executar nossos scripts.

    A soluo mais rpida? Enviei para o datacenter o procedimento de execuo dos scriptsvia SQLCMD.

    Mas o que isso?

    O SQLCMD uma ferramenta que voc utiliza para acessar instncias SQL Server viaprompt de comando (vulgo DOS). No existem segredos, uma vez conectado, atravs descripts voc pode fazer tudo o que faria utilizando o Query Analyser ou o ManagementStudio. Apesar de ser uma excelente ferramenta, o SQLCMD tem suas limitaes grficas,no entanto em alguns cenrios a ferramenta ideal!

    Os exemplos que vou apresentar foram executados na minha estao de trabalho. Nelatenho instalado um SQL Server 2005. Minha instncia uma instncia nomeada e identificada como SQL05.

    Pra comear a conversa vamos ao prompt de comando (menu Iniciar > Executar > cmd).

    No prompt de comando, para conectar no meu SQL local (localhost), utilizando o SQLCMD,devo digitar o seguinte comando:

    sqlcmd E S LOCALHOSTSQL05

    No comando acima estou conectando no SQL Server utilizando a autenticao Windows (-E) na instncia SQL05 (-S), mas se for necessrio conectar utilizando a autenticao do SQLServer, ficaria assim:

    sqlcmd U SA P senhateste S LOCALHOSTSQL05

    No exemplo acima, estou conectando no SQL utilizando o login SA do SQL Server (-U) coma senha senhateste (-P).

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 2/11

    Se a conexo for realizada com sucesso o prompt do SQLCMD ficar similar imagemabaixo:

    Se o seu SQL Server foi instalado como uma instncia padro a conexo ainda maissimples, pois voc no precisa especificar o nome da instncia. No exemplo abaixoestamos conectando numa instncia padro do SQL Server, utilizando autenticaoWindows.

    sqlcmd E

    Uma vez conectado, para sair do SQLCMD podemos utilizar os clssicos EXIT ou CTRL + C.

    Dentro do SQLCMD importante saber que suas instrues sql s sero executadasquando voc digitar um GO e confirmar com um ENTER. No exemplo abaixo eu mudei ocontexto para a base de dados Northwind e logo depois executei uma consulta. Veja queao fim de cada instruo eu adicionei um GO.

    Note que a cada GO a numerao das linhas recomea.

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 3/11

    Uma vez conectado, como j citado, voc poder executar qualquer instruo SQL desdeselects, updates, at a criao de bancos e tabelas ou a execuo de procedures do sistemaque te auxiliem a monitorar seu SQL Server, como:

    Ler log do SQL Server

    sp_readerrorlog

    go

    Verificar conexes na instncia:

    sp_who

    go

    Etc

    Combinado a isto, possvel tambm executar comandos do DOS dentro do SQLCMD.Para listar o C: basta digitar

    !!dir C:

    Se quiser dar uma limpada na tela, digite:

    !!cls

    Como voc pode notar todos os comandos do prompt DOS so precedidos por doispontos de exclamao (!!).

    Ok

    Mas digamos agora que voc tenha a um script pronto e deseja execut-lo no SQLCMD,alm disso deseja gravar o resultado da execuo deste script num arquivo txt. Vamosexemplificar esta situao utilizando o script abaixo que ser salvo na unidade c: numarquivo identificado como teste.sql.

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 4/11

    USE northwind

    lista todas as colunas da tabela Categories da base Northwind

    SELECT

    table_name nomeTabela,

    column_name nomeColuna,

    data_type tipoDaColuna,

    isnull(character_set_name, NoUnicode) campoUnicode

    FROM

    information_schema.columns

    WHERE

    table_name = Categories

    Veja como fica a linha dessa chamada utilizando o SQLCMD:

    sqlcmd -E -S LOCALHOSTSQL05 -ic:teste.sql -oresultado.txt

    O parmetro i indica o arquivo de entrada (INPUT), que contm o script que serexecutado. O parmetro o indica qual ser o arquivo de sada (OUTPUT), que conter oresultado da execuo.

    Como qualquer assunto no SQL Server, este mais um que poderamos discorrer porpginas e mais pginas mas por enquanto ficamos por aqui. Creio que essa introduo o suficiente pra entendemos o potencial desta ferramenta.

    Para obter mais informaes sobre os parmetros do SQLCMD, no prompt do DOS digitesqlcmd -? Se esse help parecer um pouco confuso voc poder acessar este link(http://msdn.microsoft.com/pt-br/library/ms165702.aspx)e ter informaes maisdetalhadas.

    importante lembrar que o SQLCMD est disponvel para o SQLServer 2005 e 2008. Para verses anteriores utilize o OSQL ou ISQL.

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 5/11

    O que PowerShell? (http://silasmendes.com/dba/o-que-e-powershell/)Navegando no SQL Server via PowerShell (http://silasmendes.com/dba/navegando-no-sqlserver-powershell/)Calculando a idade usando T-SQL (http://silasmendes.com/dba/calculando-a-idade/)

    Bom trabalho, bons estudos!

    Mendes

    Posts relacionados

    Compartilhe isso:

    Facebook (http://silasmendes.com/dba/sql-server-via-prompt/?share=facebook&nb=1)

    LinkedIn 1 (http://silasmendes.com/dba/sql-server-via-prompt/?share=linkedin&nb=1)

    Twitter 1 (http://silasmendes.com/dba/sql-server-via-prompt/?share=twitter&nb=1)

    Google (http://silasmendes.com/dba/sql-server-via-prompt/?share=google-plus-1&nb=1)

    cmd (http://silasmendes.com/dba/tag/cmd/)

    consulta metadados (http://silasmendes.com/dba/tag/consulta-metadados/)

    DOS (http://silasmendes.com/dba/tag/dos/)

    information_schema (http://silasmendes.com/dba/tag/information_schema/)

    isql (http://silasmendes.com/dba/tag/isql/) localhost (http://silasmendes.com/dba/tag/localhost/)

    Management Studio (http://silasmendes.com/dba/tag/management-studio/)

    osql (http://silasmendes.com/dba/tag/osql/)

    prompt DOS (http://silasmendes.com/dba/tag/prompt-dos/)

    Query Analyser (http://silasmendes.com/dba/tag/query-analyser/)

    script (http://silasmendes.com/dba/tag/script/)

    sp_readerrorlog (http://silasmendes.com/dba/tag/sp_readerrorlog/)

    sp_who (http://silasmendes.com/dba/tag/sp_who/)

    sql server 2005 (http://silasmendes.com/dba/tag/sql-server-2005/)

    SQL Server 2008 (http://silasmendes.com/dba/tag/sql-server-2008/)

    sqlcmd (http://silasmendes.com/dba/tag/sqlcmd/)

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 6/11

    SILAS MENDES (HTTP://SILASMENDES.COM/DBA/AUTHOR/SILASMENDES/)

    Premium Field Engineer, amante de tecnologia, msico nas horas vagas,marido e pai full time :) Silas Mendes formado em banco de dados pelo IBTAe possui certificaes MCT, MCP, MCTS e MCITP em SQL [email protected]

    14 comentrios em SQL Server via prompt decomando?

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=63#RESPOND)

    WASHINGTON21/11/2009 s 10:01 pm (http://silasmendes.com/dba/sql-server-via-prompt/#comment-63)

    Boa noite no consigo executar o comando sqlcmd no meu pc utilizo owindows xp e tenho instalado o sql. Eu entro no prompt e digito sqlcmd e noentra tentei de varias formas sqlcmd -S washingtonPONTO como estainstanciado e nada tentei sqlcmd -E -S LOCALHOSTPONTO e tambem nada. Obanco local. Mas no abre aparece o seguinte:sqlcmd no reconhecido como um comando interno ou externo, umprograma operavel ou um arquivo em lotes.

    Ser que voc pode me ajudar ?Desde j agradeo a ateno.

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=64#RESPOND)

    SILAS MENDES23/11/2009 s 10:17 am (http://silasmendes.com/dba/sql-server-via-prompt/#comment-64)

    Washington,

    Qual a sua verso do SQL Server?O SQLCMD est disponvel somente nas verses 2005 e 2008. No SQL Server2000 utilizvamos o OSQL: http://msdn.microsoft.com/pt-br/library/ms162806.aspx (http://msdn.microsoft.com/pt-br/library/ms162806.aspx)

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 7/11

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=65#RESPOND)

    WASHINGTON27/11/2009 s 4:10 pm (http://silasmendes.com/dba/sql-server-via-prompt/#comment-65)

    Boa tarde,Oh amigo Desculpe a demora em responder estava numa correria sh .Masminha verso a 2005 joquei o comando select @@Version no studioexpress e executei e apareceu que a 2005.Estou tentando aprender essas paradas ser que vc sabe pq da a mensagemcitada acima quando eu utilizo o sqlcmd tentei o osql tb mas no deu certo tb.

    Desde j agradeo a todos que se interessarem a ajudar.Vlww

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=66#RESPOND)

    LEANDRO (HTTP://BLOG.LEANDRORIBEIRO.COM)26/05/2010 s 8:44 pm (http://silasmendes.com/dba/sql-server-via-prompt/#comment-66)

    Parabns pelo artigo camarada, simples e prtico!

    Fui muito til pra mim.

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=67#RESPOND)

    JULIANA07/03/2011 s 4:01 pm (http://silasmendes.com/dba/sql-server-via-prompt/#comment-67)

    AO EXECUTAR COMANDO EEXIBIDO ERRO COMO VERIFICO O NOME DAINSTANCIA

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=180#RESPOND)

    CLAUDIO RODRIGUES RIBEIRO (HTTP://WWW.FACEBOOK.COM/CLAUDIORORIBEIRO)10/10/2012 s 12:27 pm (http://silasmendes.com/dba/sql-server-via-prompt/#comment-180)

    Vc dou o nome do server\instance???[]s

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 8/11

    Pingback: Acessando o SQL Server via Prompt Arthur Brando Blog de Conhecimentos(http://arthurbrandao0.wordpress.com/2012/06/15/acessando-o-sql-server-via-promp/)

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=68#RESPOND)

    ROSELES JOO LARGURA20/06/2011 s 5:54 pm (http://silasmendes.com/dba/sql-server-via-prompt/#comment-68)

    Nao uso sql normalmente por isso no conheo seus comandos.J uso o SQLCMD para buscar dados de tabelas e funciona muito bem.Agoara estou precisando gravar dados em uma tabela sql usando o SQLCMD.Voc faria a gentileza de me mandar um exemplo?

    Muito obrigado.

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=69#RESPOND)

    CALEBE11/02/2012 s 12:49 am (http://silasmendes.com/dba/sql-server-via-prompt/#comment-69)

    como faco para criar um script pelo windows

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=181#RESPOND)

    JEAN GOUVEIA16/10/2012 s 8:59 am (http://silasmendes.com/dba/sql-server-via-prompt/#comment-181)

    Mendes,

    Preciso criar uma .bat que faz backup de algumas tabelas de um banco edepois faa retore em outro, porm como incremento e no como insertsimples.

    Grato

    SILASMEN (HTTP://SILASMENDES.COM/DBA/)16/10/2012 s 12:14 pm (http://silasmendes.com/dba/sql-server-via-prompt/#comment-182)

    Jean, o SQL Server ainda no possui uma opo simples para fazer backup desomente algumas tabelas do banco. Voc poderia utilizar recursos comoFilegroup para garantir isto, mas teria que realizar alteraes em arquivos eetc.

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 9/11

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=182#RESPOND)

    Se entendi corretamente, voc quer manter as tais tabelas atualizadas emoutro banco de dados, sem ter que restarar um backup completo todos osdias, se for isto, voc pode utilizar recursos como replicao ou CDC. Outraopo seria criar um pacote no integration services para exportar para ooutro banco os dados atualizados nas tabelas; este pacote poderia seragendado dentro do SQL Server ou poderia ser executado via um bat no DOSatravs do DTEXEC.

    Um abrao,

    Silas Mendes

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=267#RESPOND)

    AFONSO14/12/2013 s 8:45 am (http://silasmendes.com/dba/sql-server-via-prompt/#comment-267)

    Cara.. vc [e meu heroi

    Li muita coisa, mas isso ta perfeito.. para as versoes SQL 2008 r2 e 2012, naoexista mais JOB, pelo menos a express. com isso consigo fazer as execucoesdebackup pelo DOS perfeitamente.

    Obrigado!!!!!

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=269#RESPOND)

    SILAS MENDES14/12/2013 s 1:15 pm (http://silasmendes.com/dba/sql-server-via-prompt/#comment-269)

    risos, no pra tanto fico contente por voc ter encontrado neste post uma soluo pro seu caso

    obrigado pelo feedback!

    RAFAEL SOARES13/01/2015 s 12:55 pm (http://silasmendes.com/dba/sql-server-via-prompt/#comment-346)

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 10/11

    DBA Checklist Segurana (http://silasmendes.com/dba/dba-checklist-seguranca/)

    Base de dados virtual (http://silasmendes.com/dba/base-de-dados-virtual/)

    DEIXE UMA RESPOSTA

    Escreva o seu comentrio aqui...

    RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=346#RESPOND)

    Tem como criar um arquivo batch que executa uma procedure no SQL Server2008?

    PESQUISAR NO BLOG

    POSTS RELACIONADOS

    O que PowerShell? (http://silasmendes.com/dba/o-que-e-powershell/)

    Navegando no SQL Server via PowerShell (http://silasmendes.com/dba/navegando-no-sqlserver-powershell/)

    Calculando a idade usando T-SQL (http://silasmendes.com/dba/calculando-a-idade/)

    SIGA-ME NO TWITTER

    Pesquisar...

  • 7/1/2015 SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

    http://silasmendes.com/dba/sql-server-via-prompt/ 11/11

    Nossas meninas lindas a caminho da #festaJunina instagram.com/p/4KGKvznO9s/

    Silas Mendes @silasmendes

    Fim de mais um dia em Sampa... Amo essa cidade instagram.com/p/3zYg2fHOy6/

    Silas Mendes @silasmendes

    Muffin de cacau Dukan! Feito pela Luiza Apoiando o marido no #desafioDoFrango2

    Silas Mendes @silasmendes

    20 jun

    11 jun

    4 jun

    Tweets Seguir

    Tweetar para @silasmendes

    ARQUIVOS

    Selecionar o ms

    sparkling Theme by Colorlib (http://colorlib.com/) Powered by WordPress (http://wordpress.org/)