FACTDATA - Business Intelligence & Data Warehouse

Trabalhando com Transact-SQL
O SQL Server Management Studio (SSMS), como visto no módulo anterior, é a nova ferramenta de desenvolvimento e administração de banco de dados disponibilizada pelo SQL Server 2005. Apesar deste curso estar focado no uso dessa ferramenta para o gerenciamento e desenvolvimento de bancos de dados relacionais, o SSMS possibilita o trabalho com arquivos de diferentes tipos, tais como: -

T-SQL: Transact Structured Query Language. MDX: Multi-dimensional Expressions. XMLA: XML for Analysis Specification. XML: Arquivos XML. SQL Mobile: SQL para edições do SQL Server Móbile. SQLCMD: Comandos que podem ser rodados a partir do prompt do DOS.

Escrevendo T-SQL offline
O SSMS possibilita o desenvolvimento de scripts sem a necessidade de estar conectado a um servidor SQL Server. O objetivo de escrever uma comando T-SQL não estando conectado ao servidor de banco é que desta forma é possível escolher em que banco de dados ou servidor se deseja conectar para executar o referido comando. A versão do SQL Server 2000, ou Query Analyser, fazia com que fosse necessária a existência de uma conexão entre o cliente e o servidor de banco para poder escrever os comandos T-SQL. Dentre as características que podem ser destacadas estão: • • • • O servidor de banco de dados não precisa estar online para que o comando T-SQL seja escrito e incluído em uma solução ou projeto. Diminuir a carga de trabalho que está sendo exigida do servidor de banco de dados. Diminuir o tráfego de rede. Editar comandos T-SQL em uma janela e selecionar em que servidor executar somente trocando a conexão do editor.

Todos os direitos reservados a FACTDATA – Business Intelligence & Data Warehouse

23

FACTDATA - Business Intelligence & Data Warehouse

Exemplo: Executando um comando T-SQL offline e depois conectado ao um servidor de banco de dados. 1. Inicialize o SSMS clicando em Iniciar, Programas, Microsoft SQL Server 2005 e SQL Server Management Studio. 2. Clique Cancel na janela de escolha de conexão com um servidor. A tela ficará sem conexão conforme a figura 2.1 a seguir.

(Figura 2.1) 3. Clique em File, New e Database Engine Query. 4. Clique em Cancel na janela de escolha de conexão com um servidor se ela abrir. 5. O editor estará aberto e um indicativo de que uma conexão não está estabelecida aparecerá na aba superior da área de edição.

(Figura 2.2) 6. Digite o comando T-SQL a seguir para verificar a data do servidor. a. SELECT GETDATE() 7. Clique na tecla F5 para executar o comando.

Todos os direitos reservados a FACTDATA – Business Intelligence & Data Warehouse

24

FACTDATA - Business Intelligence & Data Warehouse

8. Quando a janela de conexão for apresentada, escolha o servidor no qual deseja executar o comando. 9. O comando será executado e a data e hora do servidor serão apresentados nos resultados logo abaixo da área de edição. 10. É possível alterar rapidamente a conexão clicando na barra de ferramentas referentes ao SQL Editor.

(Figura 2.3) 11. É possível conectar, desconectar e trocar a conexão através dos botões da barra de ferramentas mostrados na figura 2.3. 12. É possivel fazer essas operações clicando em Query, Connection e depois em uma das opções disponíveis mostradas na figura 2.4.

(Figura 2.4) Execute os passos acima para o comando SELECT @@VERSION e será possível ver a versão do SQL Server que está rodando no servidor. Através destes procedimentos é possível apenas trocar a conexão para verificar a versão dos SQL Server em diferentes servidores.

Todos os direitos reservados a FACTDATA – Business Intelligence & Data Warehouse

25

FACTDATA - Business Intelligence & Data Warehouse

Gerando Scripts de Objetos
O ato de gerar script de objetos é uma função extremamente útil para um administrador de dados. Usando essas característica do SSMS é possível salvar versões de objetos de banco antes de efetuar uma alteração ou transferir toda a estrutura de um banco do servidor A para o servidor B somente salvando o arquivo com o script. A geração do script de uma tabela através do SSMS é feito da seguinte forma: 1. No SSMS conectar a um servidor para visualiza-lo no Object Explorer. 2. Expanda a pasta Databases, expanda uma base de dados e expanda a pasta Tables. 3. Clicar com o botão direito sobre uma tabela e posicione o mouse sobre a opção Script Table as e observar as opções disponíveis. 4. Selecionar SELECT to e em seguida New Query Window. 5. Observar que uma nova janela de edição será aberta com a conexão na base da tabela contendo o T-SQL do comando desejado. Ainda é possível gerar o script de modificação de objetos utilizando o SSMS. Essa opção é útil para que o administrador ou desenvolvedor efetuar uma última verificação no procedimento que está sendo realizado. A geração de script de alteração de objetos é realizado da seguinte forma: 1. No SSMS clicar sobre a pasta Tables com o botão direito do mouse e clicar em New Table. 2. Criar uma tabela conforme a figura 2.5.

(Figura 2.5) 3. No menu clicar em Table Designer e Generate Change Script. 4. Salvar o script e depois clicar em File, Open e File. 5. Conectar no servidor e selecionar a base para executar o script.

Todos os direitos reservados a FACTDATA – Business Intelligence & Data Warehouse

26

FACTDATA - Business Intelligence & Data Warehouse

6. O código salvo será mostrado no editor conforme mostra a figura 2.6.

(Figura 2.6) 7. Executar o script clicando F5. 8. Clicar em Tables no Object Explorer e clicar F5 para atualizar a lista de tabelas. 9. Sobre a tabela criada clicar com o botão direito do mouse e clicar em Design do menu aberto. 10. Alterar a tabela incluindo uma nova coluna conforme mostra a figura 2.7.

(Figura 2.7) 11. Repita a operação do item 3 e salve o script de alteração da tabela abrindo o mesmo em uma nova janela de edição. Exercite a geração de scripts através dos seguintes objetos e explore todas as opções disponíveis. a. Uma Stored Procedure. b. Uma View. c. Uma base de dados.

Todos os direitos reservados a FACTDATA – Business Intelligence & Data Warehouse

27

FACTDATA - Business Intelligence & Data Warehouse

Usando o modo SQLCMD
O SQLCMD é um modo de execução de scripts de banco de dados que permite a utilização de comandos do DOS junto com comandos T-SQL. É análogo ao OSQL da versão do SQL Server 2000. O SQLCMD permite que o administrador ou desenvolvedor trabalhe através de linha de comando do DOS ou diretamente de dentro do SSMS integrando diferentes comandos. O SQLCMD pode ser chamado basicamente de duas formas. A primeira por linha de comando do DOS clicando em Iniciar, Executar, digitando CMD e depois no prompt digitando SQLCMD. A outra forma de chamar é através do SSMS clicando em na barra de ferramentas Query e depois em SQLCMD Mode. A figura 2.8 mostra o procedimento.

(Figura 2.8) O SSMS estará trabalhando aceitando comandos do DOS dentro do editor. Um dos exemplos de uso é o que segue: 1. No SSMS abrir uma nova janela de edição de consulta. 2. Ativar o modo SQLCMD. 3. Na janela de edição digitar: :out C:\meuServidor.txt SELECT @@VERSION As 'Server Version' !!DIR !!:GO SELECT @@SERVERNAME AS 'Server Name' GO !!notepad C:\meuServidor.txt GO
Todos os direitos reservados a FACTDATA – Business Intelligence & Data Warehouse

28

FACTDATA - Business Intelligence & Data Warehouse

4. Clicar F5 para executar o script. 5. O resultado no bloco de notas será:

(Figura 2.9) IMPORTANTE: Observar que o bloco de notas será aberto mas a execução no SSMS continuará rodando. Somente fechando o bloco de notas fará com que a execução seja finalizada com sucesso. Isso server para mostrar então, que é importante tomar cuidado ao gerar conjuntos de comandos T-SQL e DOS que invoquem programas onde a intervenção de um operador seja necessária. Suprimindo a penúltima linha do script do item 3 o resultado seria gerado da mesma forma no arquivo sem a abertura do bloco de notas.

Todos os direitos reservados a FACTDATA – Business Intelligence & Data Warehouse

29

FACTDATA - Business Intelligence & Data Warehouse

Anotações e Dúvidas

Todos os direitos reservados a FACTDATA – Business Intelligence & Data Warehouse

30