web-dev-qa-db-fra.com

Comment sélectionner les données d'une table d'une autre base de données dans SQL Server?

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?

46
user82431

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]
57
Matthew Farwell

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

23
Arthur Ronald

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]
11
Brian Wells

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.

5
Mitch Baker