Olá comunidade Activedelphi.
Chegamos ao momento do ano em que nossos clientes têm a necessidade de arrumar em dias o que não foi possível arrumar durante o ano todo e os dias se apresentam com mais tarefas, mais pressões e prazos cada vez menores. Em muitos casos a auditoria exige os mais diversos e imprevisíveis relatórios e com mais pressa do que nunca...
Diante de um cenário como este a tarefa mais comum é
colocar a casa em ordem, ou seja, limpar a base de dados deixando as tabelas
mais enxutas, unificando dados para geração de relatórios anuais, etc.
O objetivo deste artigo é poder oferecer algumas dicas de
como fazer o SQL Server trabalhar para você e poupá-lo para realizar outras
tarefas.
Cenário 1:
O cliente necessita importar dados de uma tabela para outra,
pois identificou que foi feita uma normalização errada durante o projeto e agora
quer deixar o modelo de dados mais coerente com as regras de negócios da
empresa.

Para resolver, uma linha de comando atende a
esta solicitação:
INSERT INTO TABCLI (CODCLI, NOME, EMAIL)
SELECT CODCLI, NOME, E_MAIL FROM TABCLI_ESPECIAL
No exemplo acima todo o conteúdo que existe na tabela
TABCLI_ESPECIAL será migrado para a tabela TABCLI.
Para poder se beneficiar desta facilidade, vale algumas
considerações importantes:
i) Necessitando de uma cláusula Where, esta deve ficar
somente no segundo Select;
ii) este tipo de transação só é funcional quando envolver
tabs da mesma base de dados ou de bases em servidores de Banco de Dados que
tenham comunicação estabelecida;
iii) as colunas devem estar na mesma ordem em ambos os
Selects;
iv) antes de executar esta transação é fundamental observar
se as colunas de ambas as tabelas são do mesmo tipo e, caso não sejam, realizar
a conversão do tipo de dados do campo da segunda tabela.
Outro recurso muito valioso oferecido pelo SQL Server é o
Data Transformation Services (DTS).
Este é um poderoso recurso do SQL Server que serve como
agente facilitador para migração de dados entre tabelas de mesma base e entre
bases distintas.
Trata-se de uma ferramenta visual e de utilização intuitiva,
que favorece até mesmo os menos experientes, pois o processo de migração é feito
através de uma seqüência de telas, que serão apresentadas adiante.
Hoje o DTS é largamente utilizado em relação ao BCP que faz o
mesmo trabalho, mas em ambiente caracter (tela do DOS) .
O DTS executa tanto importação como exportação de dados e
aceita queries definidas pelo desenvolvedor. Ele cria queries dinamicamente de
acordo com os passos realizados para efetivar a migração dos dados.
Um detalhe muitíssimo importante e que passa despercebido por
grande parte dos desenvolvedores é que este software faz a migração de dados não
somente de SQL Server para SQL Server, mas para outras fontes de dados, como
arquivos Txt, Acess, Oracle, Excel, entre outras.
Esta facilidade pode poupar horas de trabalho ao migrar dados
para diferentes bases e fará toda a diferença para que seja possível cumprir os
prazos que estão super justos.
O acesso a esta ferramenta é feito através do Enterprise
Manager, ao clicar sobre um dos Servidores Registrados e selecionar no menu a
opção Tools.
Após clicar em Tools surgirá a opção Data Transformation Services; agora basta
selecionar “Import Data” ou “Export Data” e surgirá a tela a seguir:

Clicando em Next será apresentada a tela
abaixo, onde é possível selecionar a fonte de dados de origem.
É importante destacar que é nesta tela que outras fontes como
Oracle, Excel, Arquivo Txt, entre outras, podem ser selecionadas. No exemplo
será realizada a migração de SQL Server para SQL Server.

Selecionada a Origem das informações, cabe ao
desenvolvedor conectar ao Servidor.
Para conectar é comum ser selecionada a opção “Use SQL Server
Authentication”. Neste momento os campos Username e Password são habilitados
para que o desenvolvedor entre com o Usuário e Senha do Servidor de Banco de
Dados.
Concluída a conexão com sucesso, o combo Database é
preenchido após o botão Refresh ser clicado.
Selecionada a Base de Dados, o botão Next pressionado
conduzirá o desenvolvedor para a tela que determina o destino dos dados em
questão.

A título de ilustração, o exemplo será
baseado na Base de Dados Northwind.
Esta base vem na instalação do SQL Server e seu objetivo é
servir de exemplo.

O próximo passo consiste em determinar com
mais detalhes o que deverá ser migrado.
As opções são:
- copiar tabelas e views;
- migrar dados especificados por uma query criada pelo
desenvolvedor;
- transferir dados e objetos do Banco de Dados entre as Bases
de Dados.
Neste artigo será abordada a cópia dos dados de uma tabela
levando em conta que as tabelas envolvidas sejam do mesmo Banco de Dados, mas
este processo poderá ocorrer perfeitamente entre Banco de Dados distintos.

Para visualizar o nome completo da tabela,
basta redimensionar a coluna clicando e arrastando o mouse.
Para selecionar a tabela, que pode ser mais de uma, basta
clicar na tabela e “ticar” o checkbox conforme destacado na figura acima.

Isso feito, a coluna Destination
disponibiliza na mesma linha do objeto selecionado um combobox com as tabelas
disponíveis no Banco de Dados.
Cabe ao desenvolvedor selecionar a tabela e clicar em Next.
Neste exemplo serão migrados dados da tabela Suppliers para a
tabela Super.
Na coluna Transform é apresentado um botão com o símbolo de
reticências; ao clicar neste botão será apresentada a tela a seguir:

Esta tela é indicada no caso de ser criada
uma nova tabela e, para esse caso, a tabela de destino seria uma cópia fiel da
tabela de origem.
Com esta tela é possível fazer ajustes na tabela que será
criada e proporcionar a customização de acordo com a sua necessidade.
O botão Edit SQL permite customizar o comando SQL, criado
pelo software, para a inclusão de mais um critério na cláusula Where, por
exemplo.
Ao clicar em OK, o processo para a migração dos dados entrará
em seu estágio final.

Neste momento, o SQL disponibiliza as
possibilidades de executar a migração dos dados imediatamente, agendar uma data
e horário para a execução, preparar os dados para uma replicação ou simplesmente
salvar o script que será submetido ao banco.
Feita a escolha, o SQL mostrará uma tela com as escolhas
feitas pelo desenvolvedor para realizar a migração e aguarda um ok para concluir
o processo.

Clicando em Finish o SQL Server assume o
comando e inicia a migração propriamente dita.
Conclusão
Com este artigo é possível perceber a grande facilidade para
migrar dados e ganhar um tempo muito precioso na hora em que tempo é o que menos
se tem para atender uma solicitação e, o que é mais importante: automatizar
processos que possam vir a se tornar necessariamente repetitivos.
Como se pode constatar facilidade é algo que o SQL Server
traz como vantagem para oferecer ao desenvolvedor ou DBA em situações que exigem
respostas rápidas e precisas.
E para pensar enquanto programa...
Antes de ser mestre dos outros, você deve ser mestre de si
próprio.
José Ortega y Gasset (filósofo espanhol - 1883-1975)
|