Posts Tagged ‘Management Studio’

SQL Server via prompt de comando?

Posted in Dicas, Vida Real on October 20th, 2009 by Silas Mendes – 4 Comments

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  LOCALHOST\SQL05

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  LOCALHOST\SQL05

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

Se a conexão for realizada com sucesso o prompt do SQLCMD ficará similar à imagem abaixo:

01sqlcmd

Se o seu SQL Server foi instalado como uma instância padrão a conexão é ainda mais simples, pois você não precisa especificar o nome da instância. No exemplo abaixo estamos conectando numa instância padrão do SQL Server, utilizando autenticação Windows.

sqlcmd –E

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

Dentro do SQLCMD é importante saber que suas instruções sql só serão 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 instrução eu adicionei um GO.

02sqlcmdNote que a cada GO a numeração das linhas recomeça.

Uma vez conectado, como já citado, você poderá executar qualquer instrução SQL desde selects, updates, até a criação de bancos e tabelas ou a execução de procedures do sistema que te auxiliem a monitorar seu SQL Server, como:

Ler log do SQL Server

sp_readerrorlog

go

Verificar conexões na instância:

sp_who

go

Etc…

Combinado a isto, é possível também 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 são precedidos por dois pontos de exclamação (!!).

Ok…

Mas digamos agora que você tenha aí um script pronto e deseja executá-lo no SQLCMD, além disso deseja gravar o resultado da execução deste script num arquivo txt. Vamos exemplificar esta situação utilizando o script abaixo que será salvo na unidade c:\ num arquivo identificado como teste.sql.

USE 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’

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:

03sqlcmd

sqlcmd -E -S LOCALHOST\SQL05 -i”c:\teste.sql” -o”resultado.txt”

O parâmetro –i indica o arquivo de entrada (INPUT),  que contém o script que será executado. O parâmetro –o indica qual será o arquivo de saída (OUTPUT), que conterá o resultado da execução.

 

Como qualquer assunto no SQL Server, este é mais um que poderíamos discorrer por páginas e mais páginas… mas por enquanto ficamos por aqui. Creio que essa introdução é o suficiente pra entendemos o potencial desta ferramenta.

Para obter mais informações sobre os parâmetros do SQLCMD, no prompt do DOS digite sqlcmd -? Se esse help parecer um pouco confuso você poderá acessar este link e ter informações mais detalhadas.

 

É importante lembrar que o SQLCMD está disponível para o SQL Server 2005 e 2008. Para versões anteriores utilize o OSQL ou ISQL.

Bom trabalho, bons estudos!

 

Mendes

DBA Checklist – Sobre a profissão e a rotina

Posted in Dicas, Traduzidos, Vida Real on September 15th, 2009 by Silas Mendes – Be the first to comment
Essa série de Check List para DBAs SQL Server foi escrita por Brad McGehee para o site http://www.simple-talk.com/ . É um texto sucinto, mas muito completo. Tomei a liberdade de adicionar algumas observações (em itálico) que normalmente apontam para outros conteúdos em português. O texto original pode ser lido aqui.

Dicas de boas práticas para tornar-se um DBA Excepcional

  • Junte-se a um grupo de usuários de SQL Server.
  • Participe pelo menos uma vez ao ano de uma conferência profissional.
  • Faça pelo menos um treinamento por ano.
  • Leia pelo menos quatro livros de SQL Server por ano.
  • Leia o e-book How to Become an Exceptional DBA.
    • Livro escrito pelo autor que dá diversas dicas de como torna-se um DBA Excepcional (download em inglês).
  • Saiba tudo o que puder sobre o seu trabalho, principalmente naquelas áreas que ninguém gosta ou quer dominar.
  • No seu trabalho, seja voluntário, envolva-se em novas tarefas e aceite desafios, isso fará com que você conheça mais sobre a organização da sua empresa.
  • Instale o SQL Server no computador da sua casa ou em seu notebook e pratique, aprendendo novas funcionalidades do SQL Server, principalmente no SQL Server 2008.
  • Participe de fóruns sobre SQL Server (fazendo e respondendo perguntas).

Dia-a-dia

  • Verifique os logs do Windows, do SQL Server e logs de segurança.
  • Verifique se todos os jobs foram executados com sucesso.
  • Veja se os backups foram executados com sucesso e se foram salvos em local seguro.
  • Monitore o espaço em disco para garantir que o SQL Server não fique sem espaço. Para um melhor desempenho, todos os discos devem ter pelo menos 20% de espaço livre.
  • Durante todo o dia, periodicamente, monitore o desempenho do seu servidor. Use o System Monitor, Profiler, DMVs, ou o SQL Server 2008 Performance Data Collector.
  • Use o Management Studio ou o Profiler para monitorar e identificar problemas de locks [bloqueios].
  • Mantenha um registro de todas as alterações feitas em seus servidores, incluindo uma documentação de todos os problemas de desempenho que você encontrar e corrigir.
  • Crie alertas no SQL Server para notificá-lo através de e-mail sobre problemas potenciais. Ao receber os e-mails tome as medidas necessárias.
  • Dedique um tempo do seu dia para aprender algo novo e promover seu desenvolvimento profissional.


Dica – Copiar grid + cabeçalhos

Posted in Dicas, Vida Real on August 27th, 2009 by Silas Mendes – 1 Comment

Hoje uma dica rápida pra melhorar a produtividade:

Você está utilizando o Management Studio e acaba de executar uma consulta; agora precisa copiar o resultado para uma planilha Excel.

Sua consulta gerou um resultado com 25 colunas e ao colar o conteúdo na planilha você nota que só vieram os dados da consulta; os nomes das 25 colunas você terá que preencher a mão.

Alterar isso é bem simples. Vá no menu Options, expanda a opção Query Results e escolha a subopção Results to Grid. Agora é só marcar a opção “Include column headers when copying or saving the results” (Inclui cabeçalho das colunas quando copiar ou salvar resultados).

tela_Cabecalho

Bom trabalho!