Tengo 2 servidores MSSQL en ejecución, con más o menos el mismo conjunto de datos. Es realmente una configuración de producción/desarrollo.
Ahora, mi flujo de trabajo es así. Diariamente se realizan respaldos de cada una de las bases de datos del servidor de producción. Transfiero las copias de seguridad a través de Internet (decenas de Gigabytes) al servidor de desarrollo. "Resto" la base de datos en el servidor de desarrollo utilizando la copia de seguridad del servidor de producción, para tener un conjunto de datos actual.
Mi pregunta es esta:
¿Existe una manera fácil y rápida de "exportar" una sola tabla desde una base de datos de un servidor MSSQL e importarla a una base de datos en un servidor MSSQL diferente?
Estoy más interesado en una operación de "mejores prácticas" que en un truco de POS manipulado por un jurado.
ACTUALIZAR
Después de buscar en Google, encontré una función del servidor MSSQL que produce un script que exporta la tabla y la importa cuando se ejecuta. No puedo usar esto porque necesito importar la tabla en otro servidor.
Respuesta1
También puede recuperar los datos directamente por SQL en su servidor de destino. Si tiene acceso a la red:
SELECT a.*
INTO <YOUR TARGET TABLE>
FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;',
'SELECT *
FROM <YOUR TABLE>
') AS a;
Pero debes crear los índices tú mismo.
O estás usando INSERTAR:
INSERT INTO
<YOUR TARGET TABLE>
FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;',
'SELECT *
FROM <YOUR TABLE>
') AS a;
Respuesta2
La parte de exportación ha sido respondida en DBA:
También se ha respondido numerosas veces en Stackoverflow cómo exportar una sola tabla en el servidor SQL:
https://stackoverflow.com/questions/680552/table-level-backup
Google ofrece otras muchas formas:
Una vez que tenga esa exportación de una sola tabla, transfiérala por cualquier medio (rsync por ejemplo, o SFTP, scp) y luego impórtela.