Como gerar scripts para exportar dados no SQL Server 2008 ou 2012

Como gerar scripts para exportar dados no SQL Server 2008

 

Uma das tarefas mais comuns no trabalho com desenvolvimento de software que consome dados em bancos como o SQL Server 2008 é a necessidade de em algum momento precisarmos exportar os dados de um banco para outro. Quer seja para realizar testes ou fazer simulações existem várias maneiras de se fazer isto. Neste post eu quero demonstrar um recurso do SQL Server Management Studio (SSMS) que permite realizar esta tarefa rapidamente.

Para os que estão acostumados a usar esta ferramenta, já devem saber que é possível gerar scripts para o schema e também transferir os dados entre dois bancos distintos. Isto pode ser feito se o SSMS puder conectar-se com as duas bases, de origem e destino. No exemplo que vou dar, o objetivo é gerar o script apenas para uma tabela do banco de dados de exemplo da Microsoft – Northwind.

1. Iniciando o assistente

O assistente deve ser iniciado clicando com o botão direito do mouse sobre o banco onde se encontra a tabela a qual iremos gerar o script. Deve se clicar no banco, não na tabela e escolher as opções Tasks > Generate Scripts… a figura 1 ilustra o processo.

image

Figura 1 – Iniciando o assistente

Ao fazer isto uma janela de boas vindas pode ser apresentada, dependendo das configurações escolhidas. O assistente é bem sucinto. Você deve realizar a ação desejada e clicar no botão Next.

O assistente mantém um painel de navegação à esquerda para você saber em qual etapa está e também poder retornar em um ponto específico da tarefa. A figura 2 demonstra a janela de boas vindas.

image

Figura 2 – Janela de boas vindas do assistente

2. Selecionando a tabela

Na segunda etapa deve ser selecionada a tabela ou as tabelas que devem ser usadas no script.

image

Figura 3 – Selecionando as tabelas

Um ponto importante para se observar é que ao gerar scripts para os dados a ferramenta não cria scripts dos dados das tabelas as quais aquela que foi selecionada depende, ou seja, possui chaves estrangeiras, então, é importante antes disto verificar este detalhe. Isto pode ser feito com o próprio SSMS, basta selecionar a tabela, clicar com o botão direito do mouse e escolher a opção View Dependencies. A figura 4 exibe a janela que é aberta ao fazer isto. Use a opção Object that depend on para mostrar as que dependem da tabela selecionada e Objects on wich <tabela> depends para mostrar aquelas que dependem da tabela selecionada.

image

Figura 4 – Janela para exibição de dependências

3. Escolhendo a forma de gerar os scripts

O passo seguinte consiste em escolher se o script será gerado em um arquivo, na área de trasnferência do Windows (Clipboard) e assim poder ser colado em qualquer editor de texto ou, ainda, em uma janela de consulta nova do SSMS. A Figura 5 mostra as opções selecionadas.

image

Figura 5 – Escolhendo como o script será gerado

Neste ponto é que se deve escolher entre gerar o script do schema da tabela e assim poder recriá-la no banco de dados de destino, se somente os dados serão gerados ou se tanto o schema como os dados irão para o script. Para fazer isto deve se clicar no botão Advanced que abre uma janela como a que pode ser conferida na figura 6.

image

Figura 6 – Seleção do tipo de script que será gerado

Esta janela possui várias opções principalmente relacionadas com a exportação do schema do banco. Veja qual a mais adequada com sua necessidade.

A próxima janela serve apenas para conferir as opções que foram escolhidas.

image

Figura 7 – Tela final do assistente

Com a próxima etapa o assistente executa a geração do script e finaliza copiando para a fonte escolhida. No exemplo, optei por copiar para a área de transferência.

image

Figura 8 – Tela final do assistente

Uma vantagem é que mesmo após finalizada a geração do script você pode voltar e gerar novamente para outra tabela ou com outras opções. A figura 9 mostra uma parte do script final gerado para a a tabela Employee.

image

Figura 9 – Resultado final do script gerado

Observe duas coisas neste script. Primeiro foi desativada a geração de auto numeração da tabela com a instrução SET IDENTITY_INSERT [dbo].[Employees] ON, isto para poder manter os mesmos dados da tabela de origem na tabela de destino. Ao final do script, este recurso é reativado. O segundo ponto importante é que como esta tabela armazena também a foto do empregado, o script gera também os dados para este campo.

Com estes passos você consegue fazer exportação rápida dos dados das suas tabelas quando for necessário. Até a próxima.