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

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

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 tiver dúvidas sobre as instruções para formatar um arquivo de dados para a importação em massa, use o utilitário bcp para exportar os 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 sobre 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.

  • O SQL Server pode usar verificações paralelas para recuperar dados. Portanto, as linhas da tabela que são exportadas em massa de uma instância do SQL Server não têm a garantia de estarem 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 do SQL Server, porque as 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, instrução BULK INSERT, ou instrução 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, veja Formatos de dados para importação em massa ou exportação em massa (SQL Server) e Especificar formatos de dados para compatibilidade ao usar o 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 o parâmetro -F <first_row> e/ou o parâmetro -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).

  • A partir do SQL Server 2017 (14.x), um arquivo CSV pode ser usado como o arquivo de dados para uma importação em massa de dados para o SQL Server. 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 os dados de importação em massa de um arquivo (.dbf) de tabela do Microsoft FoxPro ou do Visual FoxPro 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. Em seguida, você pode usar o arquivo .csv como um arquivo de dados em uma operação de importação em massa do SQL Server.

      Nos sistemas de 32 bits (SQL Server 2014, 12.x, e versões anteriores), é possível importar os dados CSV para uma tabela do SQL Server sem otimizações de importação em massa usando o OPENROWSET com o Provedor 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 no arquivo schema.ini seria "FORMAT=CSVDelimited". Para usar essa solução, você precisa compreender como o Jet Text IISAM opera (a sintaxe de cadeia de conexão, o uso de schema.ini, as opções de configuração do registro etc.). As melhores fontes dessas informações são a Ajuda do Microsoft Access e os artigos da base de dados (base de informações). Para obter mais informações, consulte Inicializando o driver da fonte de dados de texto, Como usar uma consulta distribuída do SQL Server 7.0 com um servidor vinculado aos bancos de dados de acesso protegidos, COMO usar o Jet OLE DB Provider 4.0 para conectar aos bancos de dados ISAMe Como abrir arquivos de texto delimitados usando o Text II sam do Jet Provider.

Além disso, a importação em massa de dados de um arquivo de dados para uma tabela apresenta os seguintes requisitos:

  • 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 precisa ser acessível para operações de leitura tanto pelo perfil de segurança do processo do SQL Server (se o usuário fizer logon usando o logon fornecido no SQL Server) como pelo logon do Microsoft Windows que é usado sob segurança atribuída. Além disso, o usuário deve ter a permissão 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.