terça-feira, 11 de novembro de 2014

Olá!

O SQL Server Management Studio (SSMS) possui um assistente de importação de dados para um banco de dados no SQL Server, com diversas fontes de dados que podem ser selecionadas. No post de hoje traremos um tutorial para a importação de dados presentes em um arquivo de texto. O princípio de funcionamento é muito parecido se houver necessidade de importar dados de outras fontes, tais como um arquivo do Excel, Access ou o mesmo do Azure.

A nossa base de dados contém algumas informações de uma lista de amigos. Ela foi extraída do livro "Teach yourself SQL in 21 Days" da editora Sams Indianapolis. Nossa tabela final no SQL será chamada de CONTATOS e terá o seguinte layout:


LASTNAME       FIRSTNAME       AREACODE PHONE    ST ZIP
-------------- -------------- --------- -------- -- -----
BUNDY          AL                   100 555-1111 IL 22333
MEZA           AL                   200 555-2222 UK
MERRICK        BUD                  300 555-6666 CO 80212
MAST           JD                   381 555-6767 LA 23456
BULHER         FERRIS               345 555-3223 IL 23332
PERKINS        ALTON                911 555-3116 CA 95633
BOSS           SIR                  204 555-2345 CT 95633


Para começarmos, abra o "SQL Server Import and Export Wizard".


Prossiga e, na próxima tela, escolha a fonte de dados "Flat File Source"


No campo "File Name", aponte para o arquivo que deseja importar. Por padrão, o assistente mantém o delimitador de campos como sendo a vírgula, o mesmo usado em nossa base de exemplo. Podemos checar esta configuração no item "Columns" das opções no menu da esquerda. Além disso, como nossa primeira linha do arquivo contém os nomes das colunas, certifique-se que o checkbox "Column names in the first data row" está marcado, como na figura abaixo.



Até este passo os procedimentos são simples e intuitivos. Como parte do assistente, é possível pré-visualizar como os dados ficarão após a importação. Para isso, basta clicar em "Preview".


Até aqui parece que nosso procedimento de importação de dados está correto, sem nenhum problema. Porém, existe um detalhe que precisa ser configurado corretamente durante a importação, para que não existam problemas de integridade dos dados no futuro. Por exemplo, a coluna AREACODE é do tipo numérico. Por padrão, o assistente a importará como string. Para alterar o tipo de dado de cada coluna, vamos clicar na opção "Advanced". Nesta etapa configuramos algumas propriedades de cada coluna. Em nosso exemplo, vamos nos atentar para a coluna AREACODE. Repare que, como dissemos, o padrão é que o dado seja importado no tipo string, com um tamanho de 50 caracteres. Para alterar, basta clicar na posição da seta em vermelho.


Note que, no tipo inteiro (integer), existem as opções single-byte e two-byte, ambas signed e unsigned. Sabemos que o tipo single-byte varia de 0 a 255 se for unsigned e de -127 a 128 se for signed. Já no tipo two-byte, essa escala é de 0 to 65535 ou –32768 to 32767. Como na pré-visualização verificamos que alguns valores ultrapassam 255 e não existem valores negativos, vamos escolher a opção two-byte signed integer. Prossiga.

Na próxima tela, escolheremos o banco de dados de destino da nossa importação. Aqui, selecione o nome do servidor de destino e certifique-se de utilizar o modo de autenticação correto. Em seguida escolha o banco de dados de destino, como mostra a figura abaixo.



Na próxima etapa verificamos o diretório fonte dos dados e escolhemos o nome que daremos a tabela. Por padrão, o assistente do SQL utiliza o nome do arquivo importado como nome da tabela de destino. Vamos manter alterar o nome para CONTATOS.



Na próxima tela temos a confirmação das informações para conclusão da importação. Verifique se os dados estão corretos e clique em "Finish".


O assistente concluirá a importação e exibirá uma tela com a confirmação das etapas de importação.


Pronto! Seu processo de importação de dados para um banco de dados no SQL Server está concluído.

O arquivo utilizado no tutorial pode ser baixado neste link.

Um abraço e até o próximo post!

0 comentários:

Postar um comentário