it-swarm.com.de

Wie wählt man Daten einer Tabelle aus einer anderen Datenbank in SQL Server aus?

Angenommen, ich habe eine Datenbank mit dem Namen testdb in Testserver. Ich habe auch eine Datenbank mit dem Namen proddb in prod Server.

Nun möchte ich Daten einer Tabelle von testdb database aus proddb database auswählen.

Wie kann ich das in SQL Server?

Ich kann es auch mit Datenbank-Link in Oracle tun. Aber wie geht das in SQL Server?

46
user82431

Du brauchst sp_addlinkedserver ()

http://msdn.Microsoft.com/en-us/library/ms190479.aspx

Beispiel:

exec sp_addlinkedserver @server = 'test'

dann

select * from [server].[database].[schema].[table]

In deinem Beispiel:

select * from [test].[testdb].[dbo].[table]
57
Matthew Farwell

In SQL Server 2012 und höher müssen Sie keine Verknüpfung erstellen. Sie können direkt ausführen

SELECT * FROM [TARGET_DATABASE].dbo.[TABLE] AS _TARGET

Ich weiß nicht, ob frühere Versionen von SQL Server ebenfalls funktionieren

23
Arthur Ronald

Ich habe dies zuvor verwendet, um eine Abfrage für einen anderen Server und eine Datenbank über einen Verbindungsserver einzurichten:

EXEC sp_addlinkedserver @server='PWA_ProjectServer', @srvproduct='',
@provider='SQLOLEDB', @datasrc='SERVERNAME\PWA_ProjectServer'

gemäß obigem Kommentar:

select * from [server].[database].[schema].[table]

z.B.

select top 6 * from [PWA_ProjectServer].[PWA_ProjectServer_Reporting].[dbo].[MSP_AdminStatus]
11
Brian Wells

Um eine serverübergreifende Abfrage durchzuführen, überprüfen Sie die gespeicherte Systemprozedur: sp_addlinkedserver in den Hilfedateien.

Sobald der Server verbunden ist, können Sie eine Abfrage für ihn ausführen.

5
Mitch Baker