Como usar o BCP (Processo de Cópia em Massa) para exportar dados do Microsoft Dynamics GP de um banco de dados e importar dados para um novo banco de dados

Este artigo discute como usar o BCP (Processo de Cópia em Massa) para exportar dados e importar dados usando o Microsoft Dynamics GP ou o Microsoft Business Solutions – Great Plains.

Aplica-se a: Microsoft Dynamics GP
Número de KB original: 875179

Introdução

  1. Faça um backup do banco de dados da sua empresa.

  2. Copie e cole o script CreateBulkCopyOut.sql a seguir no Analisador de Consultas SQL da Microsoft.

    /* Script to create bcp commands to export data for all tables. */ SET QUOTED_IDENTIFIER OFF select 'bcp "TWO..' + name + '" out ' + name + '.out -e ' + name + '.err -c -b 1000 -U sa -P password -t "|" -S SERVERNAME -r "#EOR#\n"' from sysobjects where type = 'U' order by name
    

    No script, substitua os seguintes espaços reservados pelas informações corretas:

    • Substitua TWO pelo nome do banco de dados da sua empresa.

    • Substitua a senha pela senha sa.

    • Substitua SERVERNAME pelo nome da instância do Microsoft SQL Server.

      Observação

      Para abrir o Analisador de Consultas, selecione Iniciar, aponte para Programas, aponte para o Microsoft SQL Server e selecione Analisador de Consultas.

      Observação

      Se você estiver usando o Microsoft SQL Server Mecanismo de Área de Trabalho 2000 (também conhecido como MSDE 2000), execute a instrução em Suporte da Microsoft Console de Administrador. Para abrir o Console do Administrador de Suporte, selecione Iniciar, aponte para Programas, aponte para Suporte da Microsoft Console do Administrador e selecione Console de Administrador de Suporte. O Console de Administrador de Suporte requer uma instalação separada. Você pode instalar o programa usando o CD de instalação de Great Plains número 2.

  3. Execute o script no banco de dados e salve os resultados em um arquivo em lote. Para fazer isso, siga estas etapas:

    • Se você estiver usando o Analisador de Consultas, selecione o painel de resultados e selecione Salvar como no menu Arquivo . Crie uma pasta chamada BCPData, nomeie este arquivo Copyout.bate selecione Salvar.
    • Se você estiver usando o Console de Administrador de Suporte, selecione Arquivo e selecione Exportar. Crie uma pasta e nomeie-a BCPData. Nomeie o arquivoCopyout.bat. Em seguida, selecione Salvar.
  4. Copie e cole o script CreateBulkCopyIn.sql a seguir no Analisador de Consultas.

    /* Script to create bcp commands to import data for all tables. */ SET QUOTED_IDENTIFIER OFF select 'bcp "TWO..' + name + '" in ' + name + '.out -e ' + name + '.err -c -b 1000 -U sa -P password -t "|" -S SERVERNAME -r "#EOR#\n"' from sysobjects where type = 'U' order by name
    

    No script, substitua os seguintes espaços reservados pelas informações corretas:

    • Substitua TWO pelo nome do banco de dados da sua empresa.

    • Substitua a senha pela senha sa.

    • Substitua SERVERNAME pelo nome da instância de SQL Server.

      Observação

      Para abrir o Analisador de Consultas, selecione Iniciar, aponte para Programas, aponte para o Microsoft SQL Server e selecione Analisador de Consultas.

      Observação

      Se você estiver usando SQL Server Mecanismo de Área de Trabalho 2000, execute a instrução no Console do Administrador de Suporte. Para abrir o Console do Administrador de Suporte, selecione Iniciar, aponte para Programas, aponte para Suporte da Microsoft Console do Administrador e selecione Console de Administrador de Suporte. O Console de Administrador de Suporte requer uma instalação separada. Você pode instalar o programa usando o CD de instalação de Great Plains número 2.

  5. Execute o script no banco de dados e salve os resultados em um arquivo em lote.

    • Se você estiver usando o Analisador de Consultas, selecione o painel de resultados e selecione Salvar como no menu Arquivo . Crie uma pasta e nomeie-a BCPData. Nomeie o arquivo Copyin.bat e selecione Salvar.
    • Se você estiver usando o Console do Administrador de Suporte, selecione Arquivo e selecione Exportar. Crie uma pasta e nomeie-a BCPData. Nomeie o arquivoCopyin.bat. Em seguida, selecione Salvar.
  6. Faça um comando bcp para mover os dados para fora do banco de dados da empresa. Para fazer isso, use o método apropriado.

    • Para Microsoft SQL Server 2000 ou MSDE 2000

      1. Abra a pasta BCPData.

      2. Clique duas vezes no arquivo Copyout.bat .

        Observação

        O arquivo em lote inicia o processo BCP para copiar os dados do banco de dados para um arquivo de texto.

      3. Abra a pasta BCPData.

      4. Clique com o botão direito do mouse no arquivo Copyout.bat e selecione Editar para abrir o arquivo no Bloco de Notas ou em outro editor de texto

      5. Selecione todo o texto. Para fazer isso, selecione Editar e selecione Selecionar Todos. Ou pressione Alt+A.

      6. Copie todo o texto do arquivoCopyout.bat para a Área de Transferência. Para fazer isso, selecione Editar e selecione Copiar. Ou pressione Ctrl+C.

      7. Abra uma janela de Prompt de Comando. Para fazer isso, selecione Iniciar, selecione Executar, digite cmd e selecione OK.

      8. Cole o conteúdo do arquivoCopyout.bat na janela Prompt de Comando. Para fazer isso, clique com o botão direito do mouse na janela e selecione Colar.

    • Para Microsoft SQL Server 2005

      1. Abra a pasta BCPData.

      2. Clique duas vezes no arquivo Copyout.bat .

        Observação

        O arquivo em lote inicia o processo BCP para copiar os dados do banco de dados para um arquivo de texto.

  7. Exclua a empresa de dentro do Microsoft Dynamics GP. Para fazer isso, entre em Great Plains como o usuário sa. Selecione Ferramentas, aponte para Instalação, aponte para Sistema e selecione Empresa. Selecione o vidro de pesquisa para exibir todas as empresas listadas. Selecione a empresa e selecione Excluir.

    Observação

    Para versões do Microsoft Great Plains que são anteriores ao Microsoft Great Plains 8.0, exclua a empresa. Para excluir a empresa, faça o seguinte: no menu Configuração, selecione Sistema e, em seguida, selecione Empresa para excluir a empresa.

  8. Remova o banco de dados.

    • Se você estiver usando o Microsoft SQL Server, abra o Enterprise Manager, expanda o nome do servidor, expanda Banco de Dados, clique com o botão direito do mouse no banco de dados da empresa que você excluiu na etapa 7 e selecione Excluir.

    • Se você estiver usando SQL Server Mecanismo de Área de Trabalho 2000, remova o banco de dados de dentro do Console de Administrador de Suporte executando o script a seguir, em que TWO é o nome do banco de dados.

      DROP DATABASE TWO
      
  9. Recriar o banco de dados e os procedimentos da empresa. Para fazer isso, inicie o Microsoft Dynamics GP Utilities, entre como o usuário sa e selecione Criar nova empresa na caixa de diálogo Tarefas Adicionais .

    Observação

    Use o mesmo nome da empresa que você excluiu na etapa 7.

  10. Depois que a empresa for criada, as tabelas devem ser truncadas.

    • Se você estiver usando o Microsoft SQL Server, execute o script de Truncate_Table_Company.sql a seguir no Analisador de Consultas.

      /* Script to remove all data from all user tables in the company database */ SET QUOTED_IDENTIFIER OFF if exists (select * from sysobjects where name = 'RM_NationalAccounts_MSTR_FKC') ALTER TABLE dbo.RM00105 DROP CONSTRAINT RM_NationalAccounts_MSTR_FKC Go declare @tablename char(255) DECLARE t_cursor CURSOR for select "truncate table " + name from sysobjects where type = 'U' set NOCOUNT on open t_cursor FETCH NEXT FROM t_cursor INTO @tablename while (@@fetch_status <> -1) begin if (@@fetch_status <> -2) begin exec (@tablename) end FETCH NEXT FROM t_cursor into @tablename end DEALLOCATE t_cursor GO ALTER TABLE dbo.RM00105 ADD CONSTRAINT RM_NationalAccounts_MSTR_FKC FOREIGN KEY ( CPRCSTNM ) REFERENCES dbo.RM00101 ( CUSTNMBR ) GO
      
    • Se você estiver usando SQL Server Mecanismo de Área de Trabalho 2000, execute os scripts a seguir separadamente no console do Administrador de Suporte.

      Script 1

      SET QUOTED_IDENTIFIER OFF if exists (select * from sysobjects where name = 'RM_NationalAccounts_MSTR_FKC') ALTER TABLE dbo.RM00105 DROP CONSTRAINT RM_NationalAccounts_MSTR_FKC
      

      Script 2

      SET QUOTED_IDENTIFIER OFF declare @tablename char(255) DECLARE t_cursor CURSOR for select "truncate table " + name from sysobjects where type = 'U' set NOCOUNT on open t_cursor FETCH NEXT FROM t_cursor INTO @tablename while (@@fetch_status <> -1) begin if (@@fetch_status <> -2) begin exec (@tablename) end FETCH NEXT FROM t_cursor into @tablename end DEALLOCATE t_cursor
      

      Script 3

      ALTER TABLE dbo.RM00105 ADD CONSTRAINT RM_NationalAccounts_MSTR_FKC FOREIGN KEY ( CPRCSTNM ) REFERENCES dbo.RM00101 ( CUSTNMBR )
      
  11. Mova os dados de volta para o banco de dados da empresa. Para fazer isso, abra a pasta BCPData e clique duas vezes no arquivo Copyin.bat lote. A execução desse arquivo em lote inicia o processo de mover os dados de volta para o banco de dados da empresa. Quando os dados são movidos de volta para o banco de dados, todos os índices são criados e verificados para cada tabela.

    Observação

    Quando o processo for concluído, a pasta BCPData conterá arquivos .err. Se qualquer um desses arquivos .err for maior que 0 KB, os dados não serão importados para o banco de dados da empresa com êxito.

Mais etapas

Se você estiver usando o processo BCP para alterar sua Ordem de Classificação do Microsoft SQL Server, você deve copiar em massa dados do banco de dados DYNAMICS e de todos os bancos de dados da Empresa.

Observação

A alteração da ordem de classificação do Microsoft SQL Server para o banco de dados DYNAMICS e para o banco de dados da Empresa não tem suporte da Microsoft. Para obter informações sobre serviços de consultoria que podem estar disponíveis para alterar o Pedido de Classificação do Microsoft SQL Server para você, use uma das seguintes opções, dependendo se você é um cliente ou um parceiro:

Clientes:
Para obter mais informações sobre serviços de consultoria de manipulação de dados, entre em contato com seu parceiro de registro. Se você não tiver um parceiro de registro, visite o Microsoft Identifique para identificar um parceiro.

Parceiros:
Para obter mais informações sobre serviços de consultoria de manipulação de dados, entre em contato com os Serviços de Consultoria da Microsoft pelo telefone 800-MPN-SOLVE.

Para fazer isso, siga as etapas 1 a 11 na seção Introdução . Na etapa 10, você também deve truncar o banco de dados DYNAMICS. Para fazer isso, use um dos seguintes métodos:

  • Se você estiver usando o Microsoft SQL Server, execute o script Truncate_Tables_Dynamics.sql a seguir no Analisador de Consultas.

    /* ** **
    Truncate_Tables_Dynamics.sql 
    function: Will remove all data from all user tables in the DYNAMICS database
     ** */ 
    
    SET QUOTED_IDENTIFIER OFF 
    
    if exists (select * from sysobjects where name = 'orgEntity_SETP')
    ALTER TABLE dbo.ORG40100
    DROP CONSTRAINT orgEntity_SETP
    GO
    if exists (select * from sysobjects where name = 'orgRelation_MSTR')
    ALTER TABLE dbo.ORG00100
    DROP CONSTRAINT orgRelation_MSTR
    Go
    declare @tablename char(255) 
    
    DECLARE t_cursor CURSOR for
    select "truncate table " + name
    from sysobjects where type = 'U'
    
    set NOCOUNT on
    open t_cursor
    FETCH NEXT FROM t_cursor INTO @tablename
    while (@@fetch_status <> -1)
    begin
    if (@@fetch_status <> -2)
    begin
    exec (@tablename)
    end 
    
    FETCH NEXT FROM t_cursor into @tablename
    end
    
    DEALLOCATE t_cursor
    GO
    ALTER TABLE dbo.ORG40100 ADD 
    CONSTRAINT orgEntity_SETP FOREIGN KEY 
    (
    ENTYLVL
    ) REFERENCES dbo.ORG40000 (
    ENTYLVL
    )
    GO
    ALTER TABLE dbo.ORG00100 ADD 
    CONSTRAINT orgRelation_MSTR FOREIGN KEY 
    ( ENTITYID ) REFERENCES dbo.ORG40100 ( ENTITYID )
    
    GO 
    
  • Se você estiver usando o Microsoft SQL Server Mecanismo de Área de Trabalho 2000, execute os scripts a seguir separadamente no console do Administrador de Suporte.

    • Script 1

      if exists (select * from sysobjects where name = 'orgEntity_SETP') ALTER TABLE dbo.ORG40100 DROP CONSTRAINT orgEntity_SETP
      
    • Script 2

      if exists (select * from sysobjects where name = 'orgRelation_MSTR') ALTER TABLE dbo.ORG00100 DROP CONSTRAINT orgRelation_MSTR
      
    • Script 3

      declare @tablename char(255) 
      
      DECLARE t_cursor CURSOR for
      select "truncate table " + name
      from sysobjects where type = 'U'
      
      set NOCOUNT on
      open t_cursor
      FETCH NEXT FROM t_cursor INTO @tablename
      while (@@fetch_status <> -1)
      begin
      if (@@fetch_status <> -2)
      begin
      exec (@tablename)
      end 
      
      FETCH NEXT FROM t_cursor into @tablename
      end
      
      DEALLOCATE t_cursor
      
    • Script 4

      ALTER TABLE dbo.ORG40100 ADD 
      CONSTRAINT orgEntity_SETP FOREIGN KEY 
      (
      ENTYLVL
      ) REFERENCES dbo.ORG40000 (
      ENTYLVL
      )
      
    • Script 5

      ALTER TABLE dbo.ORG00100 ADD 
      CONSTRAINT orgRelation_MSTR FOREIGN KEY 
      ( ENTITYID ) REFERENCES dbo.ORG40100 ( ENTITYID )