Published on

September 17, 2018

Como Inserir Vários Arquivos em Massa no SQL Server

As operações de inserção em massa são um recurso poderoso no SQL Server que nos permitem carregar grandes quantidades de dados de um arquivo de texto para nosso banco de dados. Embora seja fácil realizar uma inserção em massa para um único arquivo usando o assistente de importação no SQL Server Management Studio (SSMS), e se tivermos vários arquivos que precisamos importar? Neste artigo, exploraremos como inserir vários arquivos em massa de uma pasta para um banco de dados SQL Server usando o SQL Server Integration Services (SSIS).

Configurando o Exemplo

Vamos começar criando uma tabela vazia em nosso banco de dados de teste:

CREATE TABLE [dbo].[FilesTest](
  [id] [int] NULL,
  [dataVarchar] [nvarchar](50) NULL,
  [dataNumeric] [numeric](18, 3) NULL,
  [dataInt] [int] NULL,
  [dataDate] [smalldatetime] NULL
) ON [PRIMARY]

Em seguida, precisamos ter alguns arquivos de texto em formato .CSV que queremos importar. Para este exemplo, vamos supor que temos 3 arquivos de texto com 10 linhas cada, totalizando 30 linhas. O objetivo é importar esses arquivos para nossa tabela usando um pacote SSIS.

Configurando o Pacote

Para começar, abra o SQL Server Data Tools (SSDT) e crie um novo projeto de Integration Services. No designer do pacote, selecione Fluxo de Controle e, na caixa de ferramentas do SSIS, arraste e solte um componente Tarefa de Inserção em Massa.

Em seguida, configure a Tarefa de Inserção em Massa clicando com o botão direito do mouse sobre ela e selecionando Editar. Na guia Geral, forneça um nome significativo e uma descrição para a tarefa.

Na guia Conexão, configure as conexões de origem e destino, bem como o formato do arquivo. Na Conexão de Destino, selecione seu banco de dados SQL Server e a tabela de destino. No Formato, altere o delimitador de coluna para vírgula. Na Conexão de Origem, selecione qualquer arquivo único da lista de arquivos para realizar o mapeamento de colunas para a tabela.

Na guia Opções, você pode configurar opções de tamanho de lote para arquivos muito grandes, mas para este exemplo, você pode deixar com os valores padrão. Clique em OK para salvar as alterações.

Agora, você pode testar a execução do pacote para garantir que um único arquivo seja importado corretamente. É recomendável testar um único arquivo antes de processar vários arquivos para garantir que as conversões e restrições estejam funcionando conforme o esperado.

Processando Vários Arquivos

Para processar vários arquivos, usaremos um Contêiner de Loop ForEach. Na caixa de ferramentas do SSIS, arraste e solte um Contêiner de Loop ForEach na superfície de design. Dê um duplo clique nele para configurar o contêiner.

Na guia Geral, forneça um nome significativo e uma descrição para o contêiner. Na guia Coleção, selecione Enumerador de Arquivo Foreach como a opção de Enumerador. Em seguida, especifique a pasta onde os arquivos estão localizados e o formato do arquivo. Deixe a opção Totalmente qualificado selecionada.

Na guia Mapeamentos de Variáveis, crie uma nova variável. Altere o campo Nome para o nome desejado da variável e deixe as outras configurações como padrão. Clique em OK para fechar a janela.

Arraste a tarefa de Inserção em Massa que criamos anteriormente para o contêiner de Loop ForEach. Isso garantirá que a tarefa seja executada para cada arquivo na pasta.

Por fim, configure a variável do contêiner para ser usada na conexão de origem para a tarefa de inserção em massa. Para fazer isso, selecione a conexão de arquivo de texto plano no gerenciador de conexões. Clique com o botão direito do mouse sobre ela e selecione Propriedades. Na janela de propriedades, selecione a propriedade Expressões e clique no botão (…) . Na janela do Construtor de Expressões, selecione a propriedade ConnectionString e, em seguida, selecione a variável que você criou para o Contêiner de Loop ForEach. Clique em OK para fechar a janela.

Agora, salve e reconstrua seu projeto. Você está pronto para testar o pacote.

Testando o Pacote

Antes de executar o pacote, lembre-se de truncar a tabela para remover quaisquer dados existentes. Em seguida, execute o pacote novamente. Você deve ver no log que todos os arquivos são processados, seguindo as regras de nomenclatura de arquivos que você configurou.

Se você executar uma consulta de seleção na tabela, verá que todas as linhas dos arquivos foram importadas com sucesso para o seu banco de dados SQL Server.

Ao seguir essas etapas, você criou com sucesso um pacote capaz de importar vários arquivos para seu banco de dados SQL Server usando operações de inserção em massa. Isso pode ser uma ferramenta valiosa ao lidar com grandes quantidades de dados que precisam ser carregados regularmente.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.