Banco de Dados - SQL Server

Usando Import and Export Wizard no SQL Server 2008 R2

A proposta deste artigo é mostrar uma das formas de utilizar o SSIS (SQL Server Integration Services) para importar dados para o SQL Server 2008 R2.

por Diego Nogare



A proposta deste artigo é mostrar uma das formas de utilizar o SSIS (SQL Server Integration Services) para importar dados para o SQL Server 2008 R2. Vou mostrar como popular uma tabela já existente com base em um arquivo de texto simples. Utilizarei o Import and Export Data que é uma ferramenta que já acompanha o SQL Server e não nos obriga a criar um projeto no BIDS (Business Intelligence Development Studio) que é o Visual Studio 2008 com um template para se trabalhar com BI. O Import and Export Data é muito mais limitado que o BIDS, mas para esse propósito que vou utilizar, é ideal!

Para gerar a massa de dados que vou utilizar para explicar este recurso do BI, criei uma tabela de clientes e nesta tabela preciso inserir nomes à eles. Estou tentando fazer uma forma mais automatizada para criar esses dados, por isso, procurei na internet algum site que pudesse me dar uma lista de nomes. Para minha felicidade, encontrei esse site com uma lista bem diferente: http://fernando.felix.vilabol.uol.com.br/humor/nomes.html

Copiei a lista com os nomes e salvei em um arquivo txt, no qual de o nome de nomes.txt. Se quiser baixar o arquivo que usei pra importar no SQL Server, pode pegar diretamente no meu Skydrive: http://cid-e2bc89dfc1ec2551.skydrive.live.com/browse.aspx/.Public/BI

Para importar esse arquivo para o SQL Server, vou criar uma tabela simples para armazenar esse nomes.

create table tbl_Nomes
(id_nome int identity(1,1) not null
, nome varchar(100) not null)

Depois de criada a tabela, é hora de abrir o aplicativo Import and Export Data, ele fica dentro da pasta do SQL Server 2008 R2. Veja no caminho abaixo:

Descrição: image

A primeira tela que se abre, é uma tela de boas vindas, ela não realiza nenhuma atividade especial no processo. É só avançar sem nenhum problema.

Descrição: image

A segunda tela é bem importante, é aqui que selecionamos a origem dos nossos dados. Como vamos importar informações de um arquivo txt, no primeiro combo (no topo da tela) a origem que deve ser selecionada éFlat File Source. Nesta combo existem outras diversas origem de dados, mas nesse caso específico será o Flat File. Após escolher essa opção, os campos da tela se adaptam à ela e solicitam informações sobre o arquivo. O botão “Browse…” nos permite escolher o arquivo que será utilizado para importar os dados. Selecionamos este arquivo e algumas informações relativa à ele são preenchidas. Se quiser dar uma olhada nos dados que tem no arquivo, vá até a opção “Preview” que está na listagem à esquerda na tela. Depois de escolher o arquivo, pode avançar para a próxima tela clicando em “Next >”

Sugestão 1: Altere a propriedade “Header row delimiter:” para “Comma (,)” assim ele vai quebrar a linha em cada virgula que ele encontrar.

Sugestão 2: Vá até o item “Advanced” na listagem da esquerda, selecione a coluna que tem seus dados (você vai saber qual é, olhando em “Preview”) e vá até a propriedade OutputColumnWidth e mude de 50 para 100. Esse é o tamanho da coluna, se deixar 50, alguns nomes podem ser truncados.

Descrição: image

A terceira tela que será utilizada, é a tela referente ao destino dos dados, neste caso, como vamos colocar os dados do arquivo no SQL Server 2008 R2, vou selecionar minha instância e realizar a autenticação no servidor, após a autenticação eu posso escolher o Database que vou armazenar meus dados. Após preencher esses campos vou avançar de tela.

Descrição: image

A tela seguinte permite escolher em qual tabela do banco os dados serão armazenados. Por padrão, ele sugere criar uma tabela nova com o nome do arquivo, mas isso não é obrigatório, veja que neste caso vamos preencher a tabela que criamos lá em cima, a tbl_nome. Para informar à essa ferramenta qual coluna do arquivo irá preencher qual coluna da tabela, vamos clicar no botão “Edit Mappings…” lá no final da tela.

Nesta edição de colunas, no item Destination da Column1 deixe como <ignore> e então selecione o Destination da Column0 como nome. Não dá pra fazer em outra ordem porque a princípio o destination “nome” está alocado para a column1.

Descrição: image

Após a escolha da tabela de destino e a coluna que receberá os dados do arquivo, a ferramenta nos pergunta se quer executar o processo imediatamente ou se quer armazenar para realizações futuras. No nosso caso, vamos apenas popular esta tabela agora, então não teremos problema em mandar executar agora e não salvar essa configuração. Para isso, marque a opção “Run immediately” e desmarque a opção “Save SSIS Package”. E novamente, avance.

Descrição: image

Este é o penúltimo passo, ele mostra um resumo do que será realizado e solicita que clique em “Finish” para realizar o processo.

Descrição: image

Ao clicar em finalizar, o processo começa a ser executado e se estiver tudo configurado certo não haverá problema e uma tela parecida abaixo com essa será apresentada. Veja que todos os passos foram executados com sucesso.

Descrição: image

Agora pra provar a inclusão dos dados na tabela, fiz um SELECT simples e retornaram os 244 registros incluídos.

Descrição: image

Reparem que os nomes estão com uma virgula no final, para resolver isso, eu fiz um update removendo elas do registro. O update é esse:

update tbl_Nomes set nome = replace(nome, ",", "")

Se tivessemos utilizado o BIDS para fazer a importação dos dados, seria possível adicionar um controle que na própria importação dos dados já removeria a virgula do final. Mas mesmo assim essa ferramenta é bem útil para importar e exportar dados de um lugar para outro, neste exemplo utilizamos para ler um arquivo TXT e salvar no SQL Server 2008 R2.

Diego Nogare

Diego Nogare - Graduado em Ciência da Computação e Pós-Graduado em Engenharia de Computação com ênfase em Desenvolvimento Web com .NET, Colaborador do Portal Linha de Código, co-Líder do grupo de usuários Codificando .NET, co-Líder dos Microsoft Student Partners [MSP] de São Paulo e Microsoft Most Valuable Professional [MVP] em SQL Server, possui certificações MCP e MCTS em SQL Server 2005, é palestrante em eventos da Microsoft, Codificando .NET e INETA BR, mantém o site: www.diegonogare.net.