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].
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.
Creo que lo que quieres hacer es crear un servidor vinculado según este artículo de msdn. Luego seleccionaría usando un nombre de objeto de 4 partes, por ejemplo:
Select * From ServerName.DbName.SchemaName.TableName
Puede usar Open Data Source 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
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 las claves y las 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 correspondientes de T-SQL (es decir, las instrucciones T-SQL correspondientes tanto para la publicación como para las 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.
¿Los servicios de integración de SQL Server (SSIS) son una opción? Si es así, lo usaría.
Podría ir a la ruta del servidor vinculado.
simplemente no puede usar el select * en el que tiene que hacer una inserción en select.
Evitaría la replicación si no tiene experiencia con él, ya que puede ser difícil de solucionar si se rompe y puede ser propenso a otros problemas si no se maneja adecuadamente.
Mantenlo simple, especialmente si las bases de datos son pequeñas.
¿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 según lo sugerido por pelser
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName
¿Puedes usar los Servicios de transformación de datos para hacer el trabajo? Esto proporciona todo tipo de herramientas de perno para hacer este tipo de cosas.
Puede descargar el paquete de características de SQL Server 2005 del sitio web de Microsoft aquí