Este sitio utiliza cookies con la finalidad de mejorar sus servicios prestados, tales como mostrar notificaciones u ofertas nuevas, pero las cookies no serán generadas por este sitio a menos que acepte su uso. Para ver detalle de las cookies utilizadas y su finalidad consulta nuestra política de cookies

Adjuntar bases de datos CONTPAQi de forma masiva

¿Cómo migrar una gran cantidad de empresas CONTPAQi de un servidor a otro?



Adquiere o renueva ahora
y descubre porque somos
el distribuidor que entrega más valor

Comprar, renovar licencia anual o actualizar sistema CONTPAQi Nóminas en buddysis.com



¡¡Oferta del mes de DICIEMBRE!!


Septiembre 21, 2023 | 08:00 am

Si necesitas trasladar una empresa de un servidor CONTPAQi a otro, la forma más sencilla consiste en hacer una copia de seguridad de la empresa y luego restaurarla en el nuevo servidor. Sin embargo, cuando se trata de migrar un gran número de empresas, la opción más eficiente es llevar a cabo un proceso de manera masiva, es decir adjuntando las bases de datos en el nuevo servidor.

 

Consideraciones previas

El procedimiento descrito en este artículo contempla solo bases de datos SQL Server de los sistemas Contabilidad-Bancos y CONTPAQi Nóminas; pero puede servir de guía para aplicarlo a otros sistemas como CONTPAQi Comercial.

La instalación de SQL Server en el servidor nuevo (donde serán adjuntadas las bases) deberá estar en la misma versión o superior al que existe en el servidor anterior (de donde provienen las bases de datos).

Este procedimiento presupone tener instalado y que se tiene conocimiento básico en el uso del visor de bases de datos SQL Management Studio Express.

Y como lo indica CONTPAQi, el uso de consultas SQL es bajo el propio riesgo de quien las utiliza.

 

Adjuntar empresas de Contabilidad-Bancos

  1. Copiar las bases de datos de cada una de las empresas incluyendo la tabla generalesSQL (archivos con extensión mdf y ldf) a la ruta donde se localizan las bases de datos de la instancia de SQL Server que usan los sistemas de CONTPAQi. Esta ruta se encuentra normalmente en:
    C:\Program Files\Microsoft SQL Server\mssql.x\MSSQL\DATA\
    la x en la carpeta mssql.x representa el número que corresponde al directorio de la instancia
  2. Ejecutar el programa SQL Server Management Studio y conectarse a la instancia nueva
  3. Hacer clic derecho en la carpeta Databases - Adjuntar... (Attach... en versión inglés) y adjuntas solo la base de datos GeneralesSQL
  4. Copiar y ejecutar la siguiente sentencia de sql

    use generalessql
    declare @aliasempresa nvarchar(1000)
    declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
    set @ruta='C:\Archivos de programa\Microsoft SQL Server\MSSQL.X\MSSQL\Data\'
    DECLARE Empresas CURSOR FOR select aliasbdd from listaempresas
    OPEN Empresas FETCH NEXT FROM Empresas into @aliasempresa;
    WHILE @@FETCH_STATUS = 0 BEGIN set @MDF =@ruta+@aliasempresa+'.mdf'
    set @LDF =@ruta+@aliasempresa+'_log.ldf' EXEC sp_attach_db @dbname = @aliasempresa, @filename1=@MDF, @filename2 = @LDF
    FETCH NEXT FROM Empresas into @aliasempresa;
    END;
    CLOSE Empresas;
    DEALLOCATE Empresas;

    La X en la carpeta MSSQL.X (en la línea 4) representa el número que corresponde al directorio de la instancia.

  5. Salir del programa SQL Server Management Studio
  6. Ingresar al sistema y a cualquier empresa
buddysis, el distribuidor CONTPAQi que entrega más valor a sus clientes

Adjuntar información del ADD de las empresas

Si realizaste correctamente el paso 1 del procedimiento anterior, ya deben estar las bases de datos correspondientes al ADD de todas las empresas en el directorio donde se requieren.

Lo que debes saber para este procedimiento es que el ADD de cada empresa está conformado por 4 bases de datos, estas bases de datos las puedes ver en archivos que tienen la siguiente estructura:

  • document_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_content
  • document_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_metadata
  • other_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_content
  • other_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_metadata

Cada uno de estos archivos existe tanto con extensión .mdf como con extensión .ldf, es decir que por cada empresa deberán existir 8 archivos en la ruta donde se localizan las bases de datos de la instancia de SQL Server que usan los sistemas de CONTPAQi. Esta ruta se encuentra normalmente en:
C:\Program Files\Microsoft SQL Server\mssql.x\MSSQL\DATA\
la x en la carpeta mssql.x representa el número que corresponde al directorio de la instancia.

Los archivos con extensión .ldf pueden tener una de 3 posibles estructuras:

  • Sin sufijo ni prefijo
    document_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_content.ldf
  • Con prefijo mastlog:
    mastlog.ldfother_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_content.ldf
  • Con sufijo _log:
    other_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_content_log.ldf

Identifica cuál de las 3 estructuras tienen tus archivos (puede ser más de una), ya que para continuar deberás aplicar al menos 1 de los 3 siguientes procedimientos.

Procedimiento para archivos .ldf sin sufijo ni prefijo

  1. Ejecutar el programa SQL Server Management Studio y conectarse a la instancia nueva
  2. Copiar y ejecutar la siguiente sentencia de sql

    use DB_Directory
    declare @DB_DocumentsMetadata nvarchar(1000)
    declare @DB_DocumentsContent nvarchar(1000)
    declare @DB_OthersMetadata nvarchar(1000)
    declare @DB_OthersContent nvarchar(1000)
    declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
    set @ruta='C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\DATA\'
    DECLARE Empresas CURSOR FOR
    select DB_DocumentsMetadata,DB_DocumentsContent,DB_OthersMetadata,DB_OthersContent from DatabaseDirectory
    OPEN Empresas
    FETCH NEXT FROM Empresas into @DB_DocumentsMetadata, @DB_DocumentsContent, @DB_OthersMetadata, @DB_OthersContent;
    WHILE @@FETCH_STATUS = 0
    BEGIN
    set @MDF =@ruta+@DB_DocumentsMetadata+'.mdf'
    set @LDF =@ruta+@DB_DocumentsMetadata+'.ldf'
    EXEC sp_attach_db @dbname = @DB_DocumentsMetadata, @filename1=@MDF, @filename2 = @LDF
    set @MDF =@ruta+@DB_DocumentsContent+'.mdf'
    set @LDF =@ruta+@DB_DocumentsContent+'.ldf'
    EXEC sp_attach_db @dbname = @DB_DocumentsContent, @filename1=@MDF, @filename2 = @LDF
    set @MDF =@ruta+@DB_OthersMetadata+'.mdf'
    set @LDF =@ruta+@DB_OthersMetadata+'.ldf'
    EXEC sp_attach_db @dbname = @DB_OthersMetadata, @filename1=@MDF, @filename2 = @LDF
    set @MDF =@ruta+@DB_OthersContent+'.mdf'
    set @LDF =@ruta+@DB_OthersContent+'.ldf'
    EXEC sp_attach_db @dbname = @DB_OthersContent, @filename1=@MDF, @filename2 = @LDF
    FETCH NEXT FROM Empresas into @DB_DocumentsMetadata,@DB_DocumentsContent,@DB_OthersMetadata,@DB_OthersContent;
    END;
    CLOSE Empresas;
    DEALLOCATE Empresas;

    La X en la carpeta MSSQL.X (en la línea 7) representa el número que corresponde al directorio de la instancia.

  3. Verificar se hayan adjuntado correctamente las bases de datos
  4. Cerrar SQL Management Studio
  5. Verificar en el sistema correspondiente que la empresa abra su ADD

 

Procedimiento para archivos .ldf Con prefijo mastlog

  1. Ejecutar el programa SQL Server Management Studio y conectarse a la instancia nueva
  2. Copiar y ejecutar la siguiente sentencia de sql:

    use DB_Directory
    declare @DB_DocumentsMetadata nvarchar(1000)
    declare @DB_DocumentsContent nvarchar(1000)
    declare @DB_OthersMetadata nvarchar(1000)
    declare @DB_OthersContent nvarchar(1000)
    declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
    set @ruta='C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\DATA\'
    DECLARE Empresas CURSOR FOR
    select DB_DocumentsMetadata,DB_DocumentsContent,DB_OthersMetadata,DB_OthersContent from DatabaseDirectory
    OPEN Empresas
    FETCH NEXT FROM Empresas into @DB_DocumentsMetadata, @DB_DocumentsContent, @DB_OthersMetadata, @DB_OthersContent;
    WHILE @@FETCH_STATUS = 0
    BEGIN
    set @MDF =@ruta+@DB_DocumentsMetadata+'.mdf'
    set @LDF =@ruta+mastlog.ldf+@DB_DocumentsMetadata+'.ldf'
    EXEC sp_attach_db @dbname = @DB_DocumentsMetadata, @filename1=@MDF, @filename2 = @LDF
    set @MDF =@ruta+@DB_DocumentsContent+'.mdf'
    set @LDF =@ruta+mastlog.ldf+@DB_DocumentsContent+'.ldf'
    EXEC sp_attach_db @dbname = @DB_DocumentsContent, @filename1=@MDF, @filename2 = @LDF
    set @MDF =@ruta+@DB_OthersMetadata+'.mdf'
    set @LDF =@ruta+mastlog.ldf+@DB_OthersMetadata+'.ldf'
    EXEC sp_attach_db @dbname = @DB_OthersMetadata, @filename1=@MDF, @filename2 = @LDF
    set @MDF =@ruta+@DB_OthersContent+'.mdf'
    set @LDF =@ruta+mastlog.ldf+@DB_OthersContent+'.ldf'
    EXEC sp_attach_db @dbname = @DB_OthersContent, @filename1=@MDF, @filename2 = @LDF
    FETCH NEXT FROM Empresas into @DB_DocumentsMetadata,@DB_DocumentsContent,@DB_OthersMetadata,@DB_OthersContent;
    END;
    CLOSE Empresas;
    DEALLOCATE Empresas;

    La X en la carpeta MSSQL.X (en la línea 7) representa el número que corresponde al directorio de la instancia.

  3. Verificar se hayan adjuntado correctamente las bases de datos
  4. Cerrar SQL Management Studio
  5. Verificar en el sistema correspondiente que la empresa abra su ADD

 

Procedimiento para archivos .ldf Con sufijo _log

  1. Ejecutar el programa SQL Server Management Studio y conectarse a la instancia nueva
  2. Copiar y ejecutar la siguiente sentencia de sql:

    use DB_Directory
    declare @DB_DocumentsMetadata nvarchar(1000)
    declare @DB_DocumentsContent nvarchar(1000)
    declare @DB_OthersMetadata nvarchar(1000)
    declare @DB_OthersContent nvarchar(1000)
    declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
    set @ruta='C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\DATA\'
    DECLARE Empresas CURSOR FOR
    select DB_DocumentsMetadata,DB_DocumentsContent,DB_OthersMetadata,DB_OthersContent from DatabaseDirectory
    OPEN Empresas
    FETCH NEXT FROM Empresas into @DB_DocumentsMetadata, @DB_DocumentsContent, @DB_OthersMetadata, @DB_OthersContent;
    WHILE @@FETCH_STATUS = 0
    BEGIN
    set @MDF =@ruta+@DB_DocumentsMetadata+'.mdf'
    set @LDF =@ruta+@DB_DocumentsMetadata+'_log.ldf'
    EXEC sp_attach_db @dbname = @DB_DocumentsMetadata, @filename1=@MDF, @filename2 = @LDF
    set @MDF =@ruta+@DB_DocumentsContent+'.mdf'
    set @LDF =@ruta+@DB_DocumentsContent+'_log.ldf'
    EXEC sp_attach_db @dbname = @DB_DocumentsContent, @filename1=@MDF, @filename2 = @LDF
    set @MDF =@ruta+@DB_OthersMetadata+'.mdf'
    set @LDF =@ruta+@DB_OthersMetadata+'_log.ldf'
    EXEC sp_attach_db @dbname = @DB_OthersMetadata, @filename1=@MDF, @filename2 = @LDF
    set @MDF =@ruta+@DB_OthersContent+'.mdf'
    set @LDF =@ruta+@DB_OthersContent+'_log.ldf'
    EXEC sp_attach_db @dbname = @DB_OthersContent, @filename1=@MDF, @filename2 = @LDF
    FETCH NEXT FROM Empresas into @DB_DocumentsMetadata,@DB_DocumentsContent,@DB_OthersMetadata,@DB_OthersContent;
    END;
    CLOSE Empresas;
    DEALLOCATE Empresas;

    La X en la carpeta MSSQL.X (en la línea 7) representa el número que corresponde al directorio de la instancia.

  3. Verificar se hayan adjuntado correctamente las bases de datos
  4. Cerrar SQL Management Studio
  5. Verificar en el sistema correspondiente que la empresa abra su ADD

Y otros sistemas CONTPAQi:

Sistemas de escritorio CONTPAQi

* Renovaciones   * Licencias nuevas   * Usuarios adicionales
* Ofertas vigentes de la marca y exclusivas buddysis.com

Adjuntar información de CONTPAQi Nóminas

  1. Confirmar que los archivos de las bases de datos de las empresas incluyendo nomGenerales y predeterminada se encuentren en la ruta:
    C:\Archivos de programa\Microsoft SQL Server\MSSQL.X\MSSQL\Data\

    La X en la carpeta MSSQL.X representa el número que corresponde al directorio de la instancia

  2. Abrir SQL Server Management y conectarse a la instancia nueva
  3. Hacer clic derecho en la carpeta Databases - Adjuntar... (Attach... en versión inglés) y adjuntas solo las bases de datos nomGenerales y predeterminada
  4. Copiar y ejecutar la siguiente sentencia de sql

    use nomGenerales
    declare @aliasEmpresa nvarchar(1000)
    declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
    set @ruta='C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data\'
    DECLARE Empresas CURSOR FOR
    select rutaempresa from nom10000
    OPEN Empresas
    FETCH NEXT FROM Empresas into @aliasEmpresa;
    WHILE @@FETCH_STATUS = 0
    BEGIN
    set @MDF =@ruta+@aliasEmpresa+'.mdf'
    set @LDF =@ruta+@aliasEmpresa+'_log.ldf'
    EXEC sp_attach_db @dbname = @aliasEmpresa, @filename1=@MDF, @filename2 = @LDF
    FETCH NEXT FROM Empresas into @aliasEmpresa;
    END;
    CLOSE Empresas;
    DEALLOCATE Empresas;

  5. La X en la carpeta MSSQL.X (en la línea 4) representa el número que corresponde al directorio de la instancia

  6. Verificar se hayan adjuntado correctamente las bases de datos
  7. Cerrar SQL Management Studio
  8. Abrir el sistema y verificar que se encuentren las empresas

 

Si tienes cualquier duda para realizar este procedimiento o requieres que te apoye de forma remota me contactas por WhatsApp.

 

Si te fue útil compártelo:

 

Te notificamos sobre nuevos contenidos relacionados: