Ändern und Umbenennen einer Sicht
Nachdem eine Sicht definiert wurde, können Sie ihren Namen oder ihre Definition ändern, ohne die Sicht löschen und neu erstellen zu müssen. Durch das Löschen und Neuerstellen einer Sicht gehen die Berechtigungen verloren, die dieser Sicht zugeordnet sind. Beim Umbenennen einer Sicht sollten Sie die folgenden Richtlinien beachten:
Die Sicht, die umbenannt werden soll, muss sich in der aktuellen Datenbank befinden.
Der neue Name muss den Regeln für Bezeichner entsprechen.
Sie können nur Sichten umbenennen, für die Sie die Änderungsberechtigung besitzen.
Der Datenbankbesitzer kann die Namen der Sichten aller Benutzer ändern.
Das Ändern einer Sicht hat keine Auswirkungen auf abhängige Objekte, z. B. gespeicherte Prozeduren oder Trigger, es sei denn, die Definition der Sicht wird so geändert, dass das abhängige Objekt nicht mehr gültig ist. Die employees_view-Sicht in der AdventureWorks2008R2-Datenbank wird z. B. folgendermaßen definiert:
CREATE VIEW dbo.employees_view
AS
SELECT BusinessEntityID FROM HumanResources.Employee;
Die gespeicherte Prozedur employees_proc ist wie folgt definiert:
CREATE PROC dbo.employees_proc
AS
SELECT EmployeeID from employees_view;
employees_view wird geändert, um die LastName-Spalte anstelle der BusinessEntityID-Spalte abzurufen:
ALTER VIEW dbo.employees_view
AS
SELECT LastName FROM Person.Person AS p
JOIN HumanResources.Employee AS e
ON p.BusinessEntityID = e.BusinessEntityID;
Die Ausführung von employees_proc erzeugt nun einen Fehler, da die BusinessEntityID-Spalte nicht mehr in der Sicht vorhanden ist.
Sie können eine Sicht auch ändern, um ihre Definition zu verschlüsseln oder um sicherzustellen, dass alle für die Sicht ausgeführten Anweisungen zur Datenbearbeitung die Einhaltung der Kriterien sicherstellen, die in der die Sicht definierenden SELECT-Anweisung festgelegt wurden. Weitere Informationen finden Sie unter Entwerfen und Implementieren von Sichten.
So ändern Sie eine Sicht
So benennen Sie eine Sicht um
Hinweis |
---|
Das Umbenennen einer Sicht ändert nicht den Namen der Sicht im Text der Sichtdefinition. Wenn Sie den Namen der Sicht in der Definition ändern möchten, müssen Sie die Sicht direkt bearbeiten. |