none
Abfrage aus mehreren Tabellen beschreibbar? RRS feed

  • Frage

  • Hallo,

    gegeben sei eine Tabelle mit Personen (dbo.org_personal).

    Für diese gibt es einen View, der aus weiteren Tabellen Informationen zu den Personen holt (z. B. die Raumnummer aus dbo.rmv_zuordnung):

    CREATE VIEW org_v_personal AS

    SELECT dbo.org_personal.sym, dbo.org_personal.fname AS Vorname, dbo.org_personal.lname AS Nachname, dbo.org_personal.title AS Titel, dbo.org_personal.department AS Abteilung, dbo.org_personal.email, dbo.org_personal.gz, dbo.org_personal.gz_alt, dbo.org_personal.unit AS Einheit, dbo.org_personal.notes, dbo.org_personal.sel, dbo.org_personal_ersthelfer.ersthelfer, dbo.org_personal.lname + CASE WHEN title IS NOT NULL THEN ', ' + title ELSE '' END AS NachnameTitel, dbo.org_personal.lname + CASE WHEN title IS NOT NULL THEN ', ' + title ELSE '' END + ', ' + dbo.org_personal.fname AS AnzeigeName, dbo.rmv_zuordnung.raum FROM dbo.org_personal LEFT OUTER JOIN dbo.rmv_zuordnung ON dbo.org_personal.sym = dbo.rmv_zuordnung.personal LEFT OUTER JOIN dbo.org_personal_ersthelfer ON dbo.org_personal.sym = dbo.org_personal_ersthelfer.sym WHERE (dbo.org_personal.aktiv = 1)

    Dieser View ist nun editierbar. Selbst die Raumnummer, obwohl diese aus einer anderen Tabelle stammt.

    Wie kommt das?

    Wenn ich diesen View nun mit einer weiteren Tabelle anreichere zu einem neuen View, ist auch dieser editierbar:

    CREATE VIEW personalliste AS
    SELECT        dbo.org_v_personal.sym, dbo.org_v_personal.Vorname, dbo.org_v_personal.NachnameTitel AS Nachname, dbo.org_v_personal.Einheit, dbo.org_v_personal.raum, 
                             dbo.tkv_anschluss_p.num AS Rufnummer
    FROM            dbo.org_v_personal LEFT OUTER JOIN
                             dbo.tkv_anschluss_p ON dbo.org_v_personal.sym = dbo.tkv_anschluss_p.personal

    Öffne ich diesen View z. B. in der Datenblattansicht in Access (über ODBC mit dem SQL-Server verknüpft), kann ich die Telefonnummern editieren.

    Wie kommt es, dass der SQL-Server selbst bei Outer Joins noch weiss, welche Daten er in welche Tabellen schreiben muss?

    Danke
    Magnus

    Montag, 13. April 2015 02:49

Antworten

Alle Antworten