Announcement

Collapse
No announcement yet.

serverübergreifender SELECT

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • serverübergreifender SELECT

    Hallo,<br>
    ich habe zwei Datenbank-Server DB-A und DB-B.<br>
    Wie kann ich nun einen <b>serverübergreifenden</b> SELECT ausführen?<br>
    &nbsp;<br>
    Ich dachte an <br>
    <b><font face="Courier New" size="2">&nbsp;&nbsp; SELECT
    db_a.databasename_x..tablename_y.fieldname_z,<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;
    db_b.databasename_1..tablename_2.fieldname_3<br>
    &nbsp;&nbsp; FROM&nbsp;&nbsp; db_a.databasename_x..tablename_y, <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;
    db_b.databasename_1..tablename_2<br>
    </font></b><br>
    Leider funktioniert das nicht so, wer weiß Rat?<br>
    <br>
    Gruss und Dank<br>
    &nbsp;&nbsp;&nbsp; Dietmar

  • #2
    Hallo,

    im Fall des MS SQL Server stehen zwei verschiedene Techniken zur Verfügung:

    a) <b>OPENROWSET</b>

    <pre>
    SELECT a.Feld1, e.Feld2
    FROM Tabelle1 AS a INNER JOIN OPENROWSET('SQLOLEDB','192.168.10.1';'sa';'sa',tem pdb.dbo.Tabelle2) AS e ON a.FeldKey = e.Feldkey
    </pre>

    b) Linked Server-Eintrag

    Über die Systemprozeduren <b>sp_addlinkedserver</b> und <b>sp_addlinkedsrvlogin</b> wird einmalig ein Alias-Name definiert, der dann in den T-SQL-Anweisungen direkt verwendet werden kann. Über die Systemprozedur <b>sp_helpserver</b> kann man die aktiven Verweise zu anderen Servern abrufen. Trotz des etwas höheren Aufwandes ist ein Linked Server generell besser als der OPENROWSET-Weg, zumal in der SQL-Syntax kein Unterschied gegenüber dem Zugriff auf lokale Datenbanken besteht:
    <pre>
    INSERT INTO <i>LinkedServerAlias</i>.Datenbank.dbo.Tabelle ...
    </pre>
    &#10

    Comment

    Working...
    X