Tengo varios cientos (actualmente 466, pero cada vez más) tablas que tengo que copiar de un servidor a otro.
Nunca he tenido que hacer esto antes, así que no estoy seguro de cómo abordarlo. Todas las tablas están en el mismo formato:Cart<Eight character customer number>
Esto es parte de un proyecto más amplio del cual estoy fusionando todas estas Cart<Number>
tablas en una Carts
tabla, pero esa es una pregunta completamente diferente.
¿Alguien tiene un método de mejores prácticas que pueda usar para copiar todas estas tablas? Los nombres de la base de datos en ambos servidores son los mismos, si eso ayuda. Y como dije antes, tengo la sa
cuenta para poder hacer lo que sea necesario para obtener los datos de A a B. Ambos servidores también están en la misma granja de servidores.
fuente
Respuestas:
Puede usar la tarea "Exportar datos" de SQL Server Management Studio. Haga clic derecho en la base de datos en SSMS, seleccione Tareas y luego "Exportar datos". Lanzará un asistente interactivo que permitirá copiar tablas de un servidor a otro, aunque tendrá que recrear los índices usted mismo. El asistente crea un paquete SSIS temporal (aunque también puede optar por guardarlo) y es relativamente rápido.
fuente
Aquí hay un enfoque rápido y sucio que solo necesita un servidor vinculado, en cada dirección, con suficientes privilegios, compatibilidad de cotejo y acceso a datos habilitado. Ejecuta esto en el servidor vinculado de origen para generar el SQL dinámico que se ejecutará en el servidor vinculado de destino.
fuente
Si desea que algo que se pueda programar se vuelva a ejecutar fácilmente a medida que prueba esto y realiza cambios menores, consulte mi respuesta aquí:
Importar datos de una base de datos a otro script
Esa respuesta describe el uso de un procedimiento almacenado SQLCLR que hace uso de la
SqlBulkCopy
clase en .NET. El uso de ese procedimiento almacenado se puede hacer en un cursor que recorre las tablas. Esto permite editar fácilmente el proceso, así como contabilizar nuevas tablas, o excluir fácilmente una o más tablas mediante unaWHERE
condición en la consulta del cursor.fuente
Puede usar BCP OUT e BULK INSERT INTO en la base de datos de destino. Puedes usar este script
También puede usar SSIS (importación / exportación de datos) para realizar la transferencia de datos .
fuente