Delen via


Weergaven wijzigen

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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

  1. Selecteer in Objectverkennerhet plusteken naast de database waarin de weergave zich bevindt en selecteer vervolgens het plusteken naast de map Weergaven.

  2. Klik met de rechtermuisknop op de weergave die u wilt wijzigen en selecteer Ontwerp.

  3. Breng in het diagramvenster van de ontwerpfunctie voor query's wijzigingen aan in de weergave op een of meer van de volgende manieren:

    1. Schakel de selectievakjes in of uit van alle elementen die u wilt toevoegen of verwijderen.

    2. 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.

    3. Klik met de rechtermuisknop op de titelbalk van de tabel die u wilt verwijderen en selecteer verwijderen.

  4. Selecteer in het menu Bestand de optie Opslaan en voer de weergavenaam in .

Gebruik Transact-SQL

  1. Maak in Objectverkennerverbinding met een instantie van de Database Engine.

  2. Selecteer op de standaardbalk Nieuwe query.

  3. 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
    

Volgende stappen