Preparar dados para exportação ou importação em massa

Aplica-se a: simSQL Server (todas as versões compatíveis) SimBanco de Dados SQL do Azure SimInstância Gerenciada do Azure SQL simAzure Synapse Analytics simParallel Data Warehouse

Esta seção descreve as considerações envolvidas no planejamento de operações de exportação em massa e os requisitos para operações de importação em massa.

Observação

Se não tiver certeza de como formatar um arquivo de dados para a importação em massa, use o utilitário bcp para exportar dados da tabela para um arquivo de dados. A formatação de cada campo de dados neste arquivo mostra a formatação necessária para importar dados em massa na coluna da tabela correspondente. Use a mesma formatação de dados para os campos do arquivo de dados.

Considerações de formato de arquivo de dados para exportação em massa

Antes de executar uma operação da exportação em massa usando o comando bcp , considere o seguinte:

  • Quando dados são exportados para um arquivo, o comando bcp cria o arquivo de dados automaticamente usando o nome de arquivo especificado. Se esse nome de arquivo já estiver em uso, os dados que estão sendo copiados em massa para o arquivo de dados substituirão o conteúdo existente no arquivo.

  • A exportação em massa de uma tabela ou exibição para um arquivo de dados requer permissão SELECT na tabela ou exibição que estiver sendo copiada em massa.

  • Microsoft SQL Server pode usar exames paralelos para recuperar dados. Portanto, as linhas de tabela que são exportadas em massa de uma instância do SQL Server não têm a garantia de estar em qualquer ordem específica no arquivo de dados. Para mostrar as linhas de tabela exportadas em massa em uma ordem específica no arquivo de dados, use a opção queryout para exportar em massa de uma consulta e especifique uma cláusula ORDER BY.

Requisitos de formato de arquivo de dados para importação em massa

Para importar dados de um arquivo de dados, o arquivo deve atender os seguintes requisitos básicos:

  • Os dados devem estar em formato de linha e coluna.

Observação

A estrutura do arquivo de dados não precisa ser idêntica à estrutura da tabela SQL Server , porque colunas podem ser ignoradas ou reordenadas durante o processo de importação em massa.

  • Os dados no arquivo de dados devem estar em um formato suportado como formato de caractere ou nativo.

  • Os dados podem estar em formato de caractere ou binário nativo, inclusive Unicode.

  • Para importar dados usando um comando bcp, use a instrução BULK INSERT ou INSERT... SELECT * FROM OPENROWSET(BULK...); a tabela de destino já deve existir.

  • Cada campo no arquivo de dados deve ser compatível com a coluna correspondente na tabela de destino. Por exemplo, um campo int não pode ser carregado em uma coluna datetime . Para obter mais informações, consulte Data Formats for Bulk Import or Bulk Export (SQL Server) [Formatos de dados para importação ou exportação em massa (SQL Server)] e Especificar formatos de dados para compatibilidade usando bcp (SQL Server).

    Observação

    Para especificar um subconjunto de linhas para importar de um arquivo de dados em vez do arquivo inteiro, você pode usar um comando bcp com a opção -F first_row e/ou -L last_row. Para obter mais informações, consulte bcp Utility.

  • Para importar dados de arquivos de dados com campos de comprimento ou de largura fixos, use um arquivo de formato. Para obter mais informações, veja Arquivos de formato XML (SQL Server).

  • Começando no SQL Server 2017, um arquivo CSV pode ser usado como o arquivo de dados para uma importação em massa de dados para o SQL Server. Observe que o terminador de campo de um arquivo CSV não tem que ser uma vírgula. Para ser usável como um arquivo de dados para importação em massa, um arquivo de CSV deve obedecer as seguintes restrições:

    • Campos de dados nunca contêm o terminador de campo.

    • Nenhum ou todos os valores em um campo de dados estão inclusos entre aspas ("").

    Para dados de importação em massa de um arquivo (.dbf) de tabela FoxPro ou Visual FoxPro do Microsoft ou de um arquivo de planilha (.xls) do Microsoft Excel , você precisa converter os dados em um arquivo CSV, compatível com as restrições anteriores. A extensão de arquivo normalmente é .csv. Portanto, você pode usar o arquivo .csv como um arquivo de dados em uma operação de importação em massa do SQL Server .

    Em sistemas de 32 bits (SQL Server 2014 e versões anteriores), é possível importar dados CSV em uma tabela do SQL Server sem otimizações de importação em massa usando OPENROWSET com o Provedor do OLE DB para Jet. O Jet trata arquivos de texto como tabelas, com o esquema definido por um arquivo schema.ini localizado no mesmo diretório da fonte de dados. Para dados CSV, um dos parâmetros do arquivo schema.ini é "FORMAT=CSVDelimited". Para usar essa solução, você precisa compreender como o Jet Test IISAMm opera (sua sintaxe de cadeia de conexão, o uso de schema.ini, as opções de configuração do registro e assim por diante). As melhores fontes dessas informações são a Ajuda do Microsoft Access e artigos da Base de Conhecimentos (KB). Para obter mais informações, consulte Inicializando o Driver de fonte de dados de texto, Como usar uma consulta distribuída do SQL Server 7.0 com um servidor vinculado para bancos de dados de acesso protegidos, Como: usar o provedor OLE DB Jet 4.0 para se conectar aos bancos de dados ISAM e Como abrir arquivos de texto delimitados usando texto IIsam do provedor Jet.

Além disso, a importação em massa de dados de um arquivo de dados para uma tabela exige o seguinte:

  • Usuários devem ter permissões INSERT e SELECT na tabela. Os usuários também precisam de permissão ALTER TABLE quando usarem opções que requerem operações de DDL (linguagem de definição de dados), como desabilitar restrições.

  • Ao importar dados em massa usando BULK INSERT ou INSERT... SELECT * FROM OPENROWSET(BULK...), o arquivo de dados deve estar acessível para operações de leitura pelo perfil de segurança do processo do SQL Server (se o usuário fizer logon usando o logon fornecido pelo SQL Server) ou pelo logon do Microsoft Windows que é usado sob segurança delegada. Além disso, o usuário deve ter permissão de ADMINISTER BULK OPERATIONS para ler o arquivo.

Observação

Não há suporte para a importação em massa de uma exibição particionada; tentativas de fazer importação de dados em massa em uma visão particionada falharão.

Recursos externos

Como importar dados do Excel para o SQL Server

Histórico de alterações

Conteúdo atualizado
Informações complementares sobre como usar o Provedor OLE DB para Jet para importar dados CSV.

Consulte Também

Utilitário bcp
BULK INSERT (Transact-SQL)
Tipos de dados (Transact-SQL)
Usar o formato de caractere para importar ou exportar dados (SQL Server)
Usar o formato nativo para importar ou exportar dados (SQL Server)