none
externe SQL DB Tabelle verknüpfen RRS feed

  • Frage

  • Hallo 

    Wie verknüpfe ich eine externe SQL DB Tabelle von DB1 nach DB2? (verknüpfen nicht importieren!) 

    In MS Access ist das über ODBC sehr einfach, ist das auch innerhalb SQL möglich? 

    Bitte um Info/URL, merci 

    marcel 

    Freitag, 27. Oktober 2017 12:35

Antworten

  • Hallo Marcel,

    zum einen kannst Du ein Synonyms (Database Engine) verwenden, das auf eine anderen Server/Datenbank/Objekt verweisst.

    Wenn die Datenbanken auf dem selben SQL Server liegen, kannst Du auch direkt den vollqualifizierten Namen Datenbank.Schema.Tabelle verwenden, siwe

    SELECT *
    FROM DatenbankA.dbo.Tabelle1 AS TA1
         INNER JOIN
         DatenbankB.dbo.Tabelle2 AS TB2
             ON TA1.ID = TB2.ID
    


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Freitag, 27. Oktober 2017 13:25
  • Und wenn die Datenbanken auf verschiedenen Systemen liegen geht das dann mit dem Verbindungsserver.
    Anschließend kann man mit

    select * from Verbindungsserver.Datenbank.Schema.Tabelle

    die Daten lesen. Alternativ geht das auch mit OpenQuery().
    Auch Update/Insert/Deletes sind durchaus möglich.

    Der Verbindungsserver unterstützt ODBC/OLEDB-Treiber auch anderer Datenbanken, also nicht nur SQL-Server.

    Freitag, 27. Oktober 2017 14:13

Alle Antworten

  • Hallo Marcel,

    zum einen kannst Du ein Synonyms (Database Engine) verwenden, das auf eine anderen Server/Datenbank/Objekt verweisst.

    Wenn die Datenbanken auf dem selben SQL Server liegen, kannst Du auch direkt den vollqualifizierten Namen Datenbank.Schema.Tabelle verwenden, siwe

    SELECT *
    FROM DatenbankA.dbo.Tabelle1 AS TA1
         INNER JOIN
         DatenbankB.dbo.Tabelle2 AS TB2
             ON TA1.ID = TB2.ID
    


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Freitag, 27. Oktober 2017 13:25
  • Und wenn die Datenbanken auf verschiedenen Systemen liegen geht das dann mit dem Verbindungsserver.
    Anschließend kann man mit

    select * from Verbindungsserver.Datenbank.Schema.Tabelle

    die Daten lesen. Alternativ geht das auch mit OpenQuery().
    Auch Update/Insert/Deletes sind durchaus möglich.

    Der Verbindungsserver unterstützt ODBC/OLEDB-Treiber auch anderer Datenbanken, also nicht nur SQL-Server.

    Freitag, 27. Oktober 2017 14:13
  • Hallo Olaf, Merci für Deine Info. 

    Kann eine externe SQL Tabelle auch fix als linked Tabelle/Sicht integriert werden, dito MS Access, siehe Bild 

    Als nicht SQL Guru ;-) wäre diese Lösung ideal, ist das möglich? 

    Freitag, 27. Oktober 2017 15:30
  • Wie oben schon gesagt:
    Wenn die Datenbank auf dem selben Server liegt:

    Create View MyExternTable as
    Select * from Datenbank.Schema.Tabelle

    oder über Verbindungsserver genauso:

    Create View MyExternTable as
    Select * from Verbindungsserver.Datenbank.Schema.Tabelle

    Freitag, 27. Oktober 2017 15:36
  • Es geht nicht so wie in MS Access als verknüpfte Tabelle, aber Du kannst eine View anlegen, die mit den genannten Mitteln auf die andere Tabelle zugreift; faktisch das selbe.

    Olaf Helper

    [ Blog] [ Xing] [ MVP]


    Freitag, 27. Oktober 2017 15:51
  • Super, das passt, vielen Dank 

    marcel

    • Als Antwort markiert marcel_W Freitag, 27. Oktober 2017 16:28
    • Tag als Antwort aufgehoben Stefan FalzModerator Samstag, 28. Oktober 2017 06:02
    Freitag, 27. Oktober 2017 16:28