Wann und warum entscheidet jemand, dass er eine Ansicht in seiner Datenbank erstellen muss? Warum nicht einfach eine normale gespeicherte Prozedur oder einen Select ausführen?
Antworten
Zu viele Anzeigen?Ansichten können ein Geschenk des Himmels sein, wenn es darum geht, Berichte über ältere Datenbanken zu erstellen. Insbesondere können Sie sinnvolle Tabellennamen anstelle von kryptischen 5-Buchstaben-Namen (von denen 2 ein gemeinsames Präfix sind!) oder Spaltennamen voller Abkürzungen verwenden, die zu ihrer Zeit sicher sinnvoll waren.
Hier erfahren Sie, wie Sie eine Ansicht zusammen mit Berechtigungen verwenden, um die Spalten einzuschränken, die ein Benutzer in der Tabelle aktualisieren kann.
/* This creates the view, limiting user to only 2 columns from MyTestTable */
CREATE VIEW dbo.myTESTview
WITH SCHEMABINDING AS
SELECT ID, Quantity FROM dbo.MyTestTable;
/* This uses the view to execute an update on the table MyTestTable */
UPDATE dbo.myTESTview
SET Quantity = 7
WHERE ID = 1
Im Allgemeinen verwende ich Views, um das Leben einfacher zu machen, erweiterte Details aus einer Entität zu erhalten, die in mehreren Tabellen gespeichert ist (um viele Joins im Code zu eliminieren und die Lesbarkeit zu verbessern) und manchmal, um Daten über mehrere Datenbanken zu teilen oder sogar um Einfügungen leichter lesbar zu machen.
Zur Sicherheit: Ermöglicht jedem Benutzer den Zugriff auf die Datenbank nur über einen kleinen Satz von Ansichten, die die spezifischen Daten enthalten, die der Benutzer oder die Benutzergruppe sehen darf, und schränkt den Benutzerzugriff auf andere Daten ein.
Einfachheit bei Abfragen und Struktur : Eine Ansicht kann Daten aus mehreren Tabellen abrufen und eine einzige Tabelle darstellen, wodurch die Informationen vereinfacht werden und Abfragen mit mehreren Tabellen in Abfragen mit einer einzigen Tabelle für eine Ansicht umgewandelt werden.
Zur Erstellung einer konsistenten Datenbankstruktur : Ansichten stellen ein konsistentes, unverändertes Abbild der Datenbankstruktur dar, selbst wenn die zugrunde liegenden Quelltabellen geändert werden.