Cómo usar el proceso de copia masiva (BCP) para exportar datos de Microsoft Dynamics GP desde una base de datos e importar datos a una base de datos nueva

En este artículo se describe cómo usar el proceso de copia masiva (BCP) para exportar datos e importar datos mediante Microsoft Dynamics GP o Microsoft Business Solutions - Great Plains.

Se aplica a: Microsoft Dynamics GP
Número de KB original: 875179

Introducción

  1. Realice una copia de seguridad de la base de datos de la empresa.

  2. Copie y pegue el siguiente script de CreateBulkCopyOut.sql en el Analizador de consultas de Microsoft SQL.

    /* 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
    

    En el script, reemplace los siguientes marcadores de posición por la información correcta:

    • Reemplace TWO por el nombre de la base de datos de la empresa.

    • Reemplace la contraseña por la contraseña sa.

    • Reemplace SERVERNAME por el nombre de la instancia de Microsoft SQL Server.

      Nota:

      Para abrir el Analizador de consultas, seleccione Inicio, Programas, Microsoft SQL Server y, después, Analizador de consultas.

      Nota:

      Si usa Microsoft SQL Server motor de escritorio de 2000 (también conocido como MSDE 2000), ejecute la instrucción en Soporte técnico de Microsoft Consola de administrador. Para abrir la Consola de administrador de soporte técnico, seleccione Inicio, Programas, Soporte técnico de Microsoft Consola de administrador y, a continuación, seleccione Consola de administrador de soporte técnico. La consola de administrador de soporte técnico requiere una instalación independiente. Puede instalar el programa mediante el cd de instalación de Great Plains número 2.

  3. Ejecute el script en la base de datos y guarde los resultados en un archivo por lotes. Para ello, siga estos pasos:

    • Si usa el Analizador de consultas, seleccione el panel de resultados y, a continuación, seleccione Guardar como en el menú Archivo . Cree una carpeta denominada BCPData, asígnele el nombre Copyout.baty, a continuación, seleccione Guardar.
    • Si usa la consola de administrador de soporte técnico, seleccione Archivo y, a continuación, seleccione Exportar. Cree una carpeta y asígnele el nombre BCPData. Asigne al archivo el nombre Copyout.bat. Después, seleccione Guardar.
  4. Copie y pegue el siguiente script de CreateBulkCopyIn.sql en el Analizador 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
    

    En el script, reemplace los siguientes marcadores de posición por la información correcta:

    • Reemplace TWO por el nombre de la base de datos de la empresa.

    • Reemplace la contraseña por la contraseña sa.

    • Reemplace SERVERNAME por el nombre de la instancia de SQL Server.

      Nota:

      Para abrir el Analizador de consultas, seleccione Inicio, Programas, Microsoft SQL Server y, después, Analizador de consultas.

      Nota:

      Si usa SQL Server motor de escritorio de 2000, ejecute la instrucción en consola de administrador de soporte técnico. Para abrir la Consola de administrador de soporte técnico, seleccione Inicio, Programas, Soporte técnico de Microsoft Consola de administrador y, a continuación, seleccione Consola de administrador de soporte técnico. La consola de administrador de soporte técnico requiere una instalación independiente. Puede instalar el programa mediante el cd de instalación de Great Plains número 2.

  5. Ejecute el script en la base de datos y guarde los resultados en un archivo por lotes.

    • Si usa el Analizador de consultas, seleccione el panel de resultados y, a continuación, seleccione Guardar como en el menú Archivo . Cree una carpeta y asígnele el nombre BCPData. Asigne al archivo el nombre Copyin.bat y, a continuación, seleccione Guardar.
    • Si usa la consola de administrador de soporte técnico, seleccione Archivo y, a continuación, seleccione Exportar. Cree una carpeta y asígnele el nombre BCPData. Asigne al archivo el nombre Copyin.bat. Después, seleccione Guardar.
  6. Realice un comando bcp para mover los datos de la base de datos de la empresa. Para ello, use el método adecuado.

    • Para Microsoft SQL Server 2000 o MSDE 2000

      1. Abra la carpeta BCPData.

      2. Haga doble clic en el archivo Copyout.bat .

        Nota:

        El archivo por lotes inicia el proceso BCP para copiar los datos de la base de datos en un archivo de texto.

      3. Abra la carpeta BCPData.

      4. Haga clic con el botón derecho en el archivo Copyout.bat y, a continuación, seleccione Editar para abrir el archivo en el Bloc de notas o en otro editor de texto.

      5. Seleccione todo el texto. Para ello, seleccione Editar y seleccione Seleccionar todo. O bien, presione Alt+A.

      6. Copie todo el texto del archivo Copyout.bat en el Portapapeles. Para ello, seleccione Editar y, a continuación, seleccione Copiar. O bien, presione Ctrl+C.

      7. Abra una ventana del símbolo del sistema. Para ello, seleccione Inicio, Ejecutar, escriba cmd y, a continuación, seleccione Aceptar.

      8. Pegue el contenido del archivo Copyout.bat en la ventana símbolo del sistema. Para ello, haga clic con el botón derecho en la ventana y, a continuación, seleccione Pegar.

    • Para Microsoft SQL Server 2005

      1. Abra la carpeta BCPData.

      2. Haga doble clic en el archivo Copyout.bat .

        Nota:

        El archivo por lotes inicia el proceso BCP para copiar los datos de la base de datos en un archivo de texto.

  7. Elimine la empresa desde Microsoft Dynamics GP. Para ello, inicie sesión en Great Plains como el usuario sa. Seleccione Herramientas, seleccione Configurar, Sistema y, a continuación, Compañía. Seleccione el cristal de búsqueda para mostrar todas las empresas enumeradas. Seleccione la empresa y, a continuación, seleccione Eliminar.

    Nota:

    Para las versiones de Microsoft Great Plains anteriores a Microsoft Great Plains 8.0, elimine la empresa. Para eliminar la empresa, haga lo siguiente: En el menú Configuración, seleccione Sistema y, a continuación, seleccione Empresa para eliminar la empresa.

  8. Quite la base de datos.

    • Si usa Microsoft SQL Server, abra Enterprise Manager, expanda el nombre del servidor, expanda Base de datos, haga clic con el botón derecho en la base de datos de la empresa que eliminó en el paso 7 y, a continuación, seleccione Eliminar.

    • Si usa SQL Server motor de escritorio de 2000, quite la base de datos de la Consola de administrador de soporte técnico mediante la ejecución del siguiente script, donde TWO es el nombre de la base de datos.

      DROP DATABASE TWO
      
  9. Vuelva a crear la base de datos y los procedimientos de la empresa. Para ello, inicie Utilidades de Microsoft Dynamics GP, inicie sesión como usuario sa y, a continuación, seleccione Crear nueva empresa en el cuadro de diálogo Tareas adicionales .

    Nota:

    Use el mismo nombre de empresa que el que eliminó en el paso 7.

  10. Una vez creada la empresa, las tablas se deben truncar.

    • Si usa Microsoft SQL Server, ejecute el siguiente script de Truncate_Table_Company.sql en el Analizador 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
      
    • Si usa SQL Server motor de escritorio de 2000, ejecute los siguientes scripts por separado en la consola del administrador de soporte técnico.

      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. Vuelva a mover los datos a la base de datos de la empresa. Para ello, abra la carpeta BCPData y haga doble clic en el archivo por lotesCopyin.bat . La ejecución de este archivo por lotes inicia el proceso de mover los datos de nuevo a la base de datos de la empresa. Cuando los datos se vuelven a mover a la base de datos, se crean y comprueban todos los índices para cada tabla.

    Nota:

    Cuando se complete el proceso, la carpeta BCPData contendrá archivos .err. Si alguno de estos archivos .err es mayor que 0 KB, los datos no se importaron correctamente para la base de datos de la empresa.

Más pasos

Si usa el proceso BCP para cambiar el criterio de ordenación de Microsoft SQL Server, debe copiar datos de forma masiva de la base de datos DYNAMICS y de todas las bases de datos de la empresa.

Nota:

Microsoft no admite el cambio del criterio de ordenación de Microsoft SQL Server para la base de datos DYNAMICS y para la base de datos de empresa. Para obtener información sobre los servicios de consultoría que pueden estar disponibles para cambiar el criterio de ordenación de Microsoft SQL Server, use una de las siguientes opciones, en función de si es cliente o asociado:

Clientes:
Para obtener más información sobre los servicios de consultoría de manipulación de datos, póngase en contacto con su asociado de registro. Si no tiene un asociado de registro, visite Microsoft Pinpoint para identificar a un asociado.

Socios:
Para obtener más información sobre los servicios de consultoría de manipulación de datos, póngase en contacto con Los servicios de asesoramiento de Microsoft en 800-MPN-SOLVE.

Para ello, siga los pasos del 1 al 11 en la sección Introducción . En el paso 10, también debe truncar la base de datos DYNAMICS. Para ello, use uno de los métodos siguientes:

  • Si usa Microsoft SQL Server, ejecute el siguiente script de Truncate_Tables_Dynamics.sql en el Analizador 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 
    
  • Si usa Microsoft SQL Server motor de escritorio de 2000, ejecute los siguientes scripts por separado en la consola del administrador de soporte técnico.

    • 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 )