Weergaven wijzigen
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Nadat u een weergave hebt gedefinieerd, kunt u de definitie ervan wijzigen in de SQL Server Database Engine zonder de weergave te verwijderen en opnieuw te maken met behulp van SQL Server Management Studio of Transact-SQL.
Beperkingen en beperkingen
Het wijzigen van een weergave heeft geen invloed op afhankelijke objecten, zoals opgeslagen procedures of triggers, tenzij de definitie van de weergave zodanig verandert dat het afhankelijke object niet meer geldig is.
Als een weergave die momenteel wordt gebruikt, wordt gewijzigd met ALTER VIEW, heeft de database-engine een exclusieve schemavergrendeling voor de weergave. Wanneer de vergrendeling wordt verleend en er geen actieve gebruikers van de weergave zijn, verwijdert de database-engine alle kopieën van de weergave uit de procedurecache. Bestaande plannen die verwijzen naar de weergave blijven in de cache staan, maar worden opnieuw gecompileerd wanneer ze worden aangeroepen.
ALTER VIEW kan worden toegepast op geïndexeerde weergaven; ALTER VIEW verwijdert echter voorwaardelijke alle indexen in de weergave.
Machtigingen
Als u ALTER VIEW wilt uitvoeren, is minimaal ALTER-machtiging voor OBJECT vereist.
SQL Server Management Studio gebruiken
Selecteer in Objectverkennerhet plusteken naast de database waarin de weergave zich bevindt en selecteer vervolgens het plusteken naast de map Weergaven.
Klik met de rechtermuisknop op de weergave die u wilt wijzigen en selecteer Ontwerp.
Breng in het diagramvenster van de ontwerpfunctie voor query's wijzigingen aan in de weergave op een of meer van de volgende manieren:
Schakel de selectievakjes in of uit van alle elementen die u wilt toevoegen of verwijderen.
Klik met de rechtermuisknop in het diagramvenster, selecteer Tabel toevoegen...en selecteer vervolgens de extra kolommen die u aan de weergave wilt toevoegen in het dialoogvenster Tabel toevoegen.
Klik met de rechtermuisknop op de titelbalk van de tabel die u wilt verwijderen en selecteer verwijderen.
Selecteer in het menu Bestand de optie Opslaan en voer de weergavenaam in .
Gebruik Transact-SQL
Maak in Objectverkennerverbinding met een instantie van de Database Engine.
Selecteer op de standaardbalk Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren. In het voorbeeld wordt eerst een weergave gemaakt en vervolgens de weergave gewijzigd met BEHULP van ALTER VIEW. Er wordt een WHERE-component toegevoegd aan de weergavedefinitie.
USE AdventureWorks2022; GO -- Create a view CREATE VIEW HumanResources.EmployeeHireDate AS SELECT p.FirstName, p.LastName, e.HireDate FROM HumanResources.Employee AS e INNER JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID; -- Modify the view by adding a WHERE clause to limit the rows returned ALTER VIEW HumanResources.EmployeeHireDate AS SELECT p.FirstName, p.LastName, e.HireDate FROM HumanResources.Employee AS e INNER JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID WHERE HireDate < CONVERT(DATETIME, '20020101', 101); GO