Pregunta

Quiero transferir datos de la base de datos de un servidor a la base de datos de otro servidor.Ambas bases de datos están en un servidor mssql 2005 diferente.Probablemente la replicación no sea una opción ya que la base de datos de destino se genera desde cero cada [intervalo de tiempo].

Preferiblemente 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.

¿Fue útil?

Solución

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

Select * From ServerName.DbName.SchemaName.TableName

Otros consejos

Puedes usar Open Data Source como este:

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

¿Son los Servicios de integración de SQL Server (SSIS) una opción?Si es así, usaría eso.

¿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 planea realizar la transferencia de forma regular.

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

  1. Configurar el servidor de la base de datos de origen como un servidor vinculado
  2. Utilice la siguiente sintaxis para acceder a los datos.
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName

Bueno, no estoy de acuerdo con tu comentario sobre la replicación.Puede iniciar una replicación creando una base de datos desde cero y puede controlar si las actualizaciones se realizarán 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 claves y relaciones.

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

Podrías seguir la ruta del servidor vinculado.

simplemente no puedes usar select * en tienes que hacer una inserción en select.

Evitaría la replicación si no tienes 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 adecuadamente.

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

¿Puedes utilizar los servicios de transformación de datos para hacer el trabajo?Esto proporciona todo tipo de herramientas integradas para hacer este tipo de cosas.

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

CREATE VIEW newR1 
AS
SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top