SQL entre servidores


Quiero portar datos de la base de datos de un servidor a la base de datos de otro servidor. Las bases de datos están en un servidor mssql 2005 diferente. La replicación probablemente no sea una opción ya que la base de datos de destino se genera desde cero sobre una base de [intervalo de tiempo].

Preferebly haría algo como

insert *
from db1/table1
into db2/table2
where rule1 = true

Es obvio que las credenciales de conexión irían en algún lugar de este script.

Author: Valentino Vranken, 2008-09-16

8 answers

Creo que lo que quieres hacer es crear un servidor vinculado según este artículo de msdn. A continuación, seleccionaría utilizando un nombre de objeto de 4 partes, por ejemplo:

Select * From ServerName.DbName.SchemaName.TableName
 34
Author: Matthew Pelser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-16 08:59:04

Puedes usar la Fuente de Datos Abierta así:

EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO


SELECT  *
FROM    OPENDATASOURCE('SQLOLEDB',
                   'Data Source=<Ip Of Your Server>;
                    User ID=<SQL User Name>;Password=<SQL password>').<DataBase name>.<SchemaName>.<Table Or View Name>

Go
 7
Author: Ardalan Shahgholi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-06 13:39:29

¿Es SQL Server Integration Services (SSIS) una opción? Si es así, usaría eso.

 1
Author: Galwegian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-16 08:52:50

¿Estaría transfiriendo todo el contenido de la base de datos de un servidor a otro o solo algunos datos de un par de tablas?

Para ambas opciones SSIS haría el trabajo especialmente si usted está planeando a la transferencia sobre una base regular.

Si simplemente desea copiar algunos datos de 1 o 2 tablas y prefiere hacerlo utilizando TSQL en SQL Management Studio, puede usar el servidor vinculado como sugiere pelser

  1. Configurar el servidor de base de datos de origen como un servidor
  2. Utilice la siguiente sintaxis para acceder a los datos
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName
 1
Author: kristof,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-16 10:13:34

Bueno, no estoy de acuerdo con su comentario sobre la replicación. Puede iniciar una replicación creando una base de datos desde cero, y puede controlar que las actualizaciones se realicen actualizando la base de datos del cliente disponible o simplemente recreando la base de datos.

La replicación automatizada facilitará su trabajo al administrar automáticamente las claves y las relaciones.

Creo que lo más fácil de hacer es iniciar una replicación de instantáneas a través de MSSQL Server Studio, obtener los scripts correspondientes de T-SQL (es decir, las instrucciones T-SQL correspondientes tanto para publicación como para suscripciones), y registre estos scripts como parte de un trabajo en la lista Trabajos del agente SQL o como un trabajo de replicación en la carpeta replicaciones.

 1
Author: Philippe Grondier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-16 13:34:16

Podría ir a la ruta del servidor vinculado.

Simplemente no puede usar el select * en que tiene que hacer una inserción en select.

Evitaría la replicación si no tiene experiencia con ella, ya que puede ser difícil de arreglar si se rompe y puede ser propenso a otros problemas si no se administra correctamente.

Manténgalo simple, especialmente si las bases de datos son pequeñas.

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-16 20:54:30

¿Puede usar los Servicios de Transformación de datos para hacer el trabajo? Esto proporciona todo tipo de herramientas atornilladas para hacer este tipo de cosas.

Puede descargar el paquete de características de SQL Server 2005 desde el sitio web de Microsoft aquí

 0
Author: Thomas Rushton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-16 08:59:55
CREATE VIEW newR1 
AS
SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName')
 -1
Author: Ahmed Tambe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-22 02:01:05