Benutzer mit den meisten Antworten
Abfrage aus mehreren Tabellen beschreibbar?

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
Antworten
-
...
Wie kommt es, dass der SQL-Server selbst bei Outer Joins noch weiss, welche Daten er in welche Tabellen schreiben muss?
...
Die Antwort findest Du in der Onlinehilfe zu Create View (https://msdn.microsoft.com/de-de/library/ms187956.aspx) unter Hinweise / "Aktualisierbare Sichten"
Solange der Verweis eindeutig ist, geht das.
Andreas Wolter (Blog | Twitter)
MCSM: Microsoft Certified Solutions Master Data Platform, MCM, MVP
www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com- Als Antwort vorgeschlagen Olaf HelperMVP Montag, 13. April 2015 12:01
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 21. April 2015 13:12
Alle Antworten
-
Hallo Magnus,
das Schreiben von einer View in die entsprechenden Tabellen der SQL-DB kann immer dann ausgeführt werden wenn für diese View ein "INSTEAD OF" Trigger angelegt wurde
https://technet.microsoft.com/de-de/library/ms179288(v=sql.105).aspx
Gruss Uli
-
...
Wie kommt es, dass der SQL-Server selbst bei Outer Joins noch weiss, welche Daten er in welche Tabellen schreiben muss?
...
Die Antwort findest Du in der Onlinehilfe zu Create View (https://msdn.microsoft.com/de-de/library/ms187956.aspx) unter Hinweise / "Aktualisierbare Sichten"
Solange der Verweis eindeutig ist, geht das.
Andreas Wolter (Blog | Twitter)
MCSM: Microsoft Certified Solutions Master Data Platform, MCM, MVP
www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com- Als Antwort vorgeschlagen Olaf HelperMVP Montag, 13. April 2015 12:01
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 21. April 2015 13:12