Sei sulla pagina 1di 11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

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 do


principal sistema da empresa, nosso contato no datacenter reclamou dizendo que no
conseguia abrir o Management Studio para executar nossos scripts.
A soluo mais rpida? Enviei para o datacenter o procedimento de execuo dos scripts
via SQLCMD.
Mas o que isso?
O SQLCMD uma ferramenta que voc utiliza para acessar instncias SQL Server via
prompt de comando (vulgo DOS). No existem segredos, uma vez conectado, atravs 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 limitaes grficas,
no entanto em alguns cenrios a ferramenta ideal!
Os exemplos que vou apresentar foram executados na minha estao de trabalho. Nela
tenho 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 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).

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

1/11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

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

Se o seu SQL Server foi instalado como uma instncia padro a conexo ainda mais
simples, pois voc no precisa especificar o nome da instncia. No exemplo abaixo
estamos conectando numa instncia padro do SQL Server, utilizando autenticao
Windows.

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 executadas
quando voc digitar um GO e confirmar com um ENTER. No exemplo abaixo eu mudei o
contexto para a base de dados Northwind e logo depois executei uma consulta. Veja que
ao fim de cada instruo eu adicionei um GO.

Note que a cada GO a numerao das linhas recomea.

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

2/11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

Uma vez conectado, como j citado, voc poder executar qualquer instruo SQL desde
selects, updates, at a criao de bancos e tabelas ou a execuo de procedures do sistema
que 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 dois
pontos 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. Vamos
exemplificar esta situao utilizando o script abaixo que ser salvo na unidade c: num
arquivo identificado como teste.sql.

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

3/11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

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 ser
executado. O parmetro o indica qual ser o arquivo de sada (OUTPUT), que conter o
resultado da execuo.

Como qualquer assunto no SQL Server, este mais um que poderamos discorrer por
pginas 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 digite
sqlcmd -? Se esse help parecer um pouco confuso voc poder acessar este link
(http://msdn.microsoft.com/pt-br/library/ms165702.aspx)e ter informaes mais
detalhadas.

importante lembrar que o SQLCMD est disponvel para o SQL


Server 2005 e 2008. Para verses anteriores utilize o OSQL ou ISQL.
http://silasmendes.com/dba/sql-server-via-prompt/

4/11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

Bom trabalho, bons estudos!

Mendes

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

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/)

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

5/11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

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 IBTA
e possui certificaes MCT, MCP, MCTS e MCITP em SQL Server.
silas@dbabrainstorm.com

14 comentrios em SQL Server via prompt de


comando?
WASHINGTON
21/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 o


windows xp e tenho instalado o sql. Eu entro no prompt e digito sqlcmd e no
entra tentei de varias formas sqlcmd -S washingtonPONTO como esta
instanciado e nada tentei sqlcmd -E -S LOCALHOSTPONTO e tambem nada. O
banco local. Mas no abre aparece o seguinte:
sqlcmd no reconhecido como um comando interno ou externo, um
programa operavel ou um arquivo em lotes.
Ser que voc pode me ajudar ?
Desde j agradeo a ateno.
RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=63#RESPOND)

SILAS MENDES
23/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 Server
2000 utilizvamos o OSQL: http://msdn.microsoft.com/ptbr/library/ms162806.aspx (http://msdn.microsoft.com/ptbr/library/ms162806.aspx)
RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=64#RESPOND)

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

6/11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

WASHINGTON
27/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 .Mas
minha verso a 2005 joquei o comando select @@Version no studio
express e executei e apareceu que a 2005.
Estou tentando aprender essas paradas ser que vc sabe pq da a mensagem
citada 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=65#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=66#RESPOND)

JULIANA
07/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 DA


INSTANCIA
RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=67#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
RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=180#RESPOND)

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

7/11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

ROSELES JOO LARGURA


20/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=68#RESPOND)

CALEBE
11/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=69#RESPOND)

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/)

JEAN GOUVEIA
16/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 e
depois faa retore em outro, porm como incremento e no como insert
simples.
Grato
RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=181#RESPOND)

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 de
somente algumas tabelas do banco. Voc poderia utilizar recursos como
Filegroup para garantir isto, mas teria que realizar alteraes em arquivos e
etc.
http://silasmendes.com/dba/sql-server-via-prompt/

8/11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

Se entendi corretamente, voc quer manter as tais tabelas atualizadas em


outro banco de dados, sem ter que restarar um backup completo todos os
dias, se for isto, voc pode utilizar recursos como replicao ou CDC. Outra
opo seria criar um pacote no integration services para exportar para o
outro banco os dados atualizados nas tabelas; este pacote poderia ser
agendado dentro do SQL Server ou poderia ser executado via um bat no DOS
atravs do DTEXEC.
Um abrao,
Silas Mendes
RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=182#RESPOND)

AFONSO
14/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, nao
exista mais JOB, pelo menos a express. com isso consigo fazer as execucoes
debackup pelo DOS perfeitamente.
Obrigado!!!!!
RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=267#RESPOND)

SILAS MENDES
14/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!


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

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

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

9/11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

Tem como criar um arquivo batch que executa uma procedure no SQL Server
2008?
RESPONDER (/DBA/SQL-SERVER-VIA-PROMPT/?REPLYTOCOM=346#RESPOND)

DEIXE UMA RESPOSTA


Escreva o seu comentrio aqui...

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

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

PESQUISAR NO BLOG
Pesquisar...

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

SIGA-ME NO TWITTER

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

10/11

7/1/2015

SQL Server via prompt de comando? | Silas Mendes | Prosas sobre SQL Server, experincias de campo e mercado.

Tweets
Silas Mendes
@silasmendes

Seguir
20 jun

Nossas meninas lindas a caminho


da #festaJunina
instagram.com/p/4KGKvznO9s/

Silas Mendes
@silasmendes

11 jun

Fim de mais um dia em Sampa...


Amo essa cidade
instagram.com/p/3zYg2fHOy6/

Silas Mendes
@silasmendes

4 jun

Muffin de cacau Dukan! Feito pela


Luiza
Apoiando o marido no
#desafioDoFrango2

Tweetar para @silasmendes

ARQUIVOS
Selecionar o ms

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

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

11/11

Potrebbero piacerti anche