Question

Je souhaite transférer des données d'une base de données d'un serveur vers la base de données d'un autre serveur. Les bases de données se trouvent sur un serveur mssql 2005 différent. La réplication n'est probablement pas une option, car la base de données de destination est générée à partir de rien, sur une base [d'intervalle de temps].

Je ferais de préférence quelque chose comme

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

Il est évident que les informations d'identification de connexion iraient quelque part dans ce script.

Était-ce utile?

La solution

Je pense que vous souhaitez créer un serveur lié, comme indiqué dans cet article msdn. Vous sélectionneriez ensuite en utilisant un nom d'objet en 4 parties, par exemple:

Select * From ServerName.DbName.SchemaName.TableName

Autres conseils

Vous pouvez utiliser une source de données ouverte comme ceci:

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

Existe-t-il une option pour SQL Server Integration Services (SSIS)? Si oui, je l’utiliserais.

Transfèreriez-vous tout le contenu de la base de données d'un serveur à un autre ou seulement quelques données provenant de quelques tables?

Pour les deux options, SSIS s’acquitterait de cette tâche, en particulier si vous envisagez de le transférer régulièrement.

Si vous souhaitez simplement copier des données de 1 ou 2 tables et préférez le faire à l'aide de TSQL dans SQL Management Studio, vous pouvez utiliser le serveur lié comme suggéré par pelser

.
  1. Configurez le serveur de base de données source en tant que serveur lié
  2. Utilisez la syntaxe suivante pour accéder aux données
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName

Eh bien, je ne partage pas votre commentaire sur la réplication. Vous pouvez démarrer une réplication en créant une base de données à partir de zéro. Vous pouvez également contrôler que les mises à jour seront effectuées en mettant à jour la base de données client disponible ou en recréant simplement la base de données.

La réplication automatisée facilitera votre travail en gérant automatiquement les clés et les relations.

Je pense que la solution la plus simple consiste à démarrer une réplication de capture instantanée via MSSQL Server Studio, à obtenir les scripts T-SQL correspondants (c'est-à-dire les instructions T-SQL correspondantes pour la publication et les abonnements), et enregistrer ces scripts dans le cadre de un travail dans la liste des travaux de l'agent SQL ou en tant que travail de réplication dans le dossier de réplication.

Vous pouvez choisir la route du serveur lié.

vous ne pouvez pas utiliser le select * dans vous devez faire un insert dans select.

J'éviterais la réplication si vous n'en avez pas l'expérience, car il peut être difficile à résoudre en cas de panne et peut être sujet à d'autres problèmes s'il n'est pas correctement géré.

Faites simple, surtout si les bases de données sont petites.

Pouvez-vous utiliser Data Transformation Services pour effectuer le travail? Cela fournit toutes sortes d’outils assemblés pour faire ce genre de chose.

Vous pouvez télécharger le pack de fonctionnalités SQL Server 2005 à partir du site Web de Microsoft. ici

CREATE VIEW newR1 
AS
SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top