Modifica di visteModify Views

Dopo aver definito una vista, è possibile modificarne la definizione in SQL Server 2017SQL Server 2017 , senza eliminare e ricreare la vista, utilizzando SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.After you define a view, you can modify its definition in SQL Server 2017SQL Server 2017 without dropping and re-creating the view by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

  • La modifica di una vista non influisce sugli oggetti dipendenti, ad esempio stored procedure o trigger, a meno che la definizione della vista non venga modificata in modo che l'oggetto dipendente non sia più valido.Modifying a view does not affect any dependent objects, such as stored procedures or triggers, unless the definition of the view changes in such a way that the dependent object is no longer valid.

  • Se si modifica una vista in uso con ALTER VIEW, nel Motore di databaseDatabase Engine viene accettato un blocco di schema esclusivo sulla vista.If a view currently used is modified by using ALTER VIEW, the Motore di databaseDatabase Engine takes an exclusive schema lock on the view. Quando viene concesso il blocco e non esistono utenti attivi della vista, Motore di databaseDatabase Engine elimina tutte le copie della vista dalla cache delle procedure.When the lock is granted, and there are no active users of the view, the Motore di databaseDatabase Engine deletes all copies of the view from the procedure cache. I piani esistenti che fanno riferimento alla vista rimangono nella cache, ma vengono ricompilati per chiamate successive.Existing plans referencing the view remain in the cache but are recompiled when invoked.

  • È possibile utilizzare ALTER VIEW per viste indicizzate. Tuttavia, in questo caso vengono eliminati tutti gli indici nella vista, senza eccezioni.ALTER VIEW can be applied to indexed views; however, ALTER VIEW unconditionally drops all indexes on the view.

Sicurezza Security

Autorizzazioni Permissions

Per eseguire ALTER VIEW, è richiesta come minimo l'autorizzazione ALTER per OBJECT.To execute ALTER VIEW, at a minimum, ALTER permission on OBJECT is required.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per modificare una vistaTo modify a view

  1. In Esplora oggettifare clic sul segno più accanto al database in cui si trova la vista, quindi fare di nuovo clic sul segno più accanto alla cartella Viste .In Object Explorer, click the plus sign next to the database where your view is located and then click the plus sign next to the Views folder.

  2. Fare clic con il pulsante destro del mouse sulla vista che si desidera modificare, quindi scegliere Progettazione.Right-click on the view you wish to modify and select Design.

  3. Nel riquadro del diagramma di Progettazione query, apportare le modifiche alla vista con uno dei metodi seguenti:In the diagram pane of the query designer, make changes to the view in one or more of the following ways:

    1. Selezionare o deselezionare le caselle di controllo di qualsiasi elemento che si desidera aggiungere o rimuovere.Select or clear the check boxes of any elements you wish to add or remove.

    2. Fare clic con il pulsante destro del mouse all'interno del riquadro del diagramma, selezionare Aggiungi tabella, quindi scegliere le ulteriori colonne da aggiungere alla vista nella finestra di dialogo Aggiungi tabella .Right-click within the diagram pane, select Add Table…, and then select the additional columns you want to add to the view from the Add Table dialog box.

    3. Fare clic con il pulsante destro del mouse sulla barra del titolo della tabella da rimuovere e selezionare Rimuovi.Right-click the title bar of the table you wish to remove and select Remove.

  4. Nel menu File scegliere Salvaview name.On the File menu, click Saveview name.

Utilizzo di Transact-SQL Using Transact-SQL

Per modificare una vistaTo modify a view

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  2. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute. Nell'esempio si crea innanzitutto una vista che, successivamente, viene modificata tramite ALTER VIEW.The example first creates a view and then modifies the view by using ALTER VIEW. Una clausola WHERE viene aggiunta alla definizione della vista.A WHERE clause is added to the view definition.

    USE AdventureWorks2012 ;  
    GO  
    -- Create a view.  
    CREATE VIEW HumanResources.EmployeeHireDate  
    AS  
    SELECT p.FirstName, p.LastName, e.HireDate  
    FROM HumanResources.Employee AS e 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 JOIN Person.Person AS  p  
    ON e.BusinessEntityID = p.BusinessEntityID  
    WHERE HireDate < CONVERT(DATETIME,'20020101',101) ;   
    GO  
    

    Per altre informazioni, vedere ALTER VIEW (Transact-SQL).For more information, see ALTER VIEW (Transact-SQL).