Supposons que j'ai une base de données nommée testdb
dans serveur de test. Aussi, j'ai une base de données nommée proddb dans prod serveur.
Maintenant, je veux sélectionner les données d'une table de testdb base de données de proddb base de données.
Comment puis-je faire cela dans SQL Server
?
Aussi, je peux le faire en utilisant lien base de données dans Oracle. Mais comment faire cela dans SQL Server?
Vous avez besoin de sp_addlinkedserver ()
http://msdn.Microsoft.com/en-us/library/ms190479.aspx
Exemple:
exec sp_addlinkedserver @server = 'test'
puis
select * from [server].[database].[schema].[table]
Dans votre exemple:
select * from [test].[testdb].[dbo].[table]
Dans SQL Server 2012 et versions ultérieures, il n'est pas nécessaire de créer un lien. Vous pouvez exécuter directement
SELECT * FROM [TARGET_DATABASE].dbo.[TABLE] AS _TARGET
Je ne sais pas si les versions précédentes de SQL Server fonctionnent aussi bien
Je l'ai déjà utilisé pour configurer une requête sur un autre serveur et une base de données via un serveur lié:
EXEC sp_addlinkedserver @server='PWA_ProjectServer', @srvproduct='',
@provider='SQLOLEDB', @datasrc='SERVERNAME\PWA_ProjectServer'
par le commentaire ci-dessus:
select * from [server].[database].[schema].[table]
par exemple.
select top 6 * from [PWA_ProjectServer].[PWA_ProjectServer_Reporting].[dbo].[MSP_AdminStatus]
Pour effectuer une requête entre serveurs, extrayez la procédure stockée système: sp_addlinkedserver dans les fichiers d'aide.
Une fois le serveur lié, vous pouvez exécuter une requête sur celui-ci.