📖 Views

Views sind auf dem Server gespeicherte SELECT
-Anweisungen. Mit jeder View, die man ausführt, führ man die darunterliegende Abfrage aus. Für den Anwender sieht das dann aus wie eine Tabelle, es ist aber nur eine Virtuelle Tabelle. Eine View bietet einen selektiven Einblick in Tabelleninhalte und kann dadurch eine oder mehrere Tabellen abstrahieren und somit die Komplexität vereinfachen für den Endbenutzer. Zudem kann man hier in der Rechtevergabe gezielt gestalten, sodass ein Benutzer z.B. keinen Zugriff auf eine Tabelle hat, dafür aber auf eine View, welche die Tabelle abfragt.
View Erstellen
CREATE VIEW view_name [WITH ENCRYPTION] AS
SELECT ...
[WITH CHECK OPTION]
WITH ENCRYPTION
: View-Definition ist in den Systemtabellen verschlüsselt (SQL Server).WITH CHECK OPTION
: DML nur innerhalb der View. Das heisst, per INSERT oder UPDATE können nur Werte geschrieben werden, welche von der View auch angezeigt werden.Beispiel: Wenn die View
ViewXY
eine Abfrage mit BedingungWHERE feld1 > 10
enthält, liefert folgende Anweisung einen Fehler:UPDATE ViewXY SET feld1=5;
View Abfragen
Eine View kann grundsätzlich wie eine Tabelle abgefragt werden:
SELECT * FROM view_name;
View ändern/löschen
Gleiche Syntax wie bei CREATE VIEW
bis auf die Anfangsklausel. Bei einer Änderung müssen alle Optionen wieder gesetzt werden.
-- View ändern
ALTER VIEW view_name [WITH ENCRYPTION] AS
SELECT ...
[WITH CHECK OPTION]
-- View löschen
DROP VIEW view_name
Einschränkungen bei Views
Die SELECT
-Anweisung der View darf folgende Elemente nicht enthalten:
ORDER BY
-KlauselINTO
-SchlüsselwortVerweis auf temporäre Tabellen
Eine DML auf eine View ist nicht möglich, wenn sie folgendes enthält:
Aggregatfunktionen
GROUP BY
TOP
UNION
DISTINCT
Berechnete Spalten in der
SELECT
-Klausel
Last updated
Was this helpful?