samy-delux: MSSQL Join über verschiedene Datenbanken

Hey Leute,

Ich sitze hier gerade an einem mir sonst unbekanntem MSSQL Server und habe Zugriff auf 4 Datenbanken.
Leider liegen die Informationen die ich brauche in zwei verschiedenen Datenbanken, weshalb ich einen Join für 2 Tabellen in verschiedenen Datenbanken machen muss.

Ich kenne normal nur MySQL und habe von MSSQL nicht sonderlich viel Ahnung, deshalb brauche ich eure Hilfe:

Ich kann auf beide Datenbanken mit "USE Datenbank" und dann z.B. einem SELECT zugreifen.
Also dachte ich mir ein Join muss ja auch klappen. Folgende Anleitung habe ich gefunden:
http://www.developer.be/index.cfm/fuseaction/faqDetail/FaqId/286.htm

Ich weiß auch das der User "WWS" heißt, aber sobald ich nur eine Abfrage die den Datenbanknamen enthält ala "SELECT * FROM db.table" sagt er mir:
"Datei 'C:\Formulare\Artikel\db.mdb' nicht gefunden'"

Keine Ahnung warum er überhaupt in das Verzeichnis geht und dort sucht. Auch die Angabe "db.wws.table" geht nicht. Alle meine Versuche diesen ominößen Tabellenbesitzer herauszufinden schlugen ebenfalls fehl!
Wenn ich jedoch "USE db" und dann den SELECT ohne extra Angabe der Datenbank mache funktioniert er.
Aber für den Join brauche ich das ja leider mit Angabe der Datenbank!

Wie gesagt, ich weiß leider auch gar nicht um welche Version des MSSQL Servers es sich hier handelt. Vielleicht kann mir trotzdem jemand helfen?

Vielen Dank schonmal!

Grüße,
Samy

  1. Hallo,

    Leider liegen die Informationen die ich brauche in zwei verschiedenen Datenbanken, weshalb ich einen Join für 2 Tabellen in verschiedenen Datenbanken machen muss.

    Das ist einfach, wenn Du auf beide zugreifen darfst.

    Ich kann auf beide Datenbanken mit "USE Datenbank" und dann z.B. einem SELECT zugreifen.

    SELECT
       felder
    FROM
       <datenbankname>.<schemaname>.<tabellenname>
    INNER JOIN
       <datenbankname>.<schemaname>.<tabellenname>

    Du hast offensichtlich entweder Datenbank weggelassen oder das Schema vergessen.
    Standardschema ist übrigens das Schema

    dbo

    Schau's Dir einfach im Managment-Studio an. Es zeigt Dir in der Datenbankansicht unter Tabellen die Tabellen Deiner Datenbank in der Form

    <schemaname>.<tabellenname>

    Freundliche Grüße

    Vinzenz

    1. Okay, also suche ich nach dem Schema Namen. "dbo" ist es nämlich leider nicht :(

      SELECT * FROM dbo.Konten

      Funktioniert nicht, folgendes aber schon:

      SELECT * FROM Konten

      Das Problem ist leider, dass ich die Zugangsdaten nicht kenne. Ich kann nur durch das Warenwirtschatfssystem hier im Geschäft SQL Kommandos ausführen. Dies loggt sich automatisch ein und stellt auch eine SQL "Konsole" zur verfügung.
      Dadruch dass ich die Zugangsdaten nicht kenne, kann ich mich nicht mit dem Management Studio verbinden.
      Leider ist der Zugriff des Benutzers "WWS" auch begrenzt, er kann also auf "information_schema" leider nicht zugreifen!

      Grüße,
      Samy

      1. Falls es hilft, überall ist von JET/MDB Datenbank die Rede!

        Grüße,
        Samy

        1. Hallo,

          Falls es hilft, überall ist von JET/MDB Datenbank die Rede!

          die hat mit einem MS SQL Sever *nichts* zu tun.
          Die Jet-Engine ist die Datenbank-Engine hinter MS Access und ist ebenso wie SQLite auch ohne Access nutzbar.

          Freundliche Grüße

          Vinzenz

          1. Falls es hilft, überall ist von JET/MDB Datenbank die Rede!

            die hat mit einem MS SQL Sever *nichts* zu tun.
            Die Jet-Engine ist die Datenbank-Engine hinter MS Access und ist ebenso wie SQLite auch ohne Access nutzbar.

            Okay, dann war meine Erste Annahme leider eine Fehlinformation. Ich kam darauf, da hier auf dem Computer so ein MSSQL Überwachungstool bei den Tray Icons läuft!
            Aber vielleicht ist das für etwas anders.

            Geht es denn mit dieser JET-Engine überhaupt einen Join über mehrere Datenbanken zu machen?
            Mit sqlite geht das ja über Umwege!

            Grüße,
            Samy

            PS: Man sollte sich merken ob man ein Pseudonym oder seinen echten Namen bneutzt und dann dabei bleiben ;)

            1. Okay, dass die JET-Engine etwas anderes ist war der entscheidende Tipp.
              Nach etwas Googlen fand ich folgende Lösung:

              [DATEN\Kasse.mdb]

              In den eckigen Klammern kann man den Pfad zur Datenbank angeben!

              Grüße,
              Samy