MSSQL Join über verschiedene Datenbanken
samy-delux
- datenbank
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
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
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
Falls es hilft, überall ist von JET/MDB Datenbank die Rede!
Grüße,
Samy
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
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 ;)
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