Modificare i dati tramite una vistaModify Data Through a View

È possibile modificare i dati di una tabella di base sottostante in SQL Server 2017SQL Server 2017 utilizzando SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.You can modify the data of an underlying base table in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

Autorizzazioni Permissions

È richiesta l'autorizzazione UPDATE, INSERT o DELETE per la tabella di destinazione, a seconda dell'azione eseguita.Requires UPDATE, INSERT, or DELETE permissions on the target table, depending on the action being performed.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per modificare i dati della tabella tramite una vistaTo modify table data through a view

  1. In Esplora oggettiespandere il database contenente la vista, quindi espandere Viste.In Object Explorer, expand the database that contains the view and then expand Views.

  2. Fare clic con il pulsante destro del mouse sulla vista e selezionare Modifica le prime 200 righe.Right-click the view and select Edit Top 200 Rows.

  3. È possibile che sia necessario modificare l'istruzione SELECT nel riquadro SQL affinché vengano restituite le righe da modificare.You may need to modify the SELECT statement in the SQL pane to return the rows to be modified.

  4. Nel riquadro dei risultati individuare la riga da modificare o eliminare.In the Results pane, locate the row to be changed or deleted. Per eliminare la riga, fare clic con il pulsante destro del mouse sulla riga e scegliere Elimina.To delete the row, right-click the row and select Delete. Per modificare i dati in una o più colonne, modificare i dati nella colonna.To change data in one or more columns, modify the data in the column.

    IMPORTANTEIMPORTANT!! Non è possibile eliminare una riga se la vista fa riferimento a più di una tabella di base.You cannot delete a row if the view references more than one base table. È possibile aggiornare solo le colonne che appartengono a una singola tabella di base.You can only update columns that belong to a single base table.

  5. Per inserire una riga, scorrere fino alla fine delle righe e inserire i nuovi valori.To insert a row, scroll down to the end of the rows and insert the new values.

    IMPORTANTEIMPORTANT! Non è possibile inserire una riga se la vista fa riferimento a più di una tabella di base.You cannot insert a row if the view references more than one base table.

Utilizzo di Transact-SQL Using Transact-SQL

Per aggiornare i dati della tabella tramite una vistaTo update table data through 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. In questo esempio si modifica il valore nelle colonne StartDate e EndDate per un dipendente specifico facendo riferimento alle colonne nella vista HumanResources.vEmployeeDepartmentHistory.This example changes the value in the StartDate and EndDate columns for a specific employee by referencing columns in the view HumanResources.vEmployeeDepartmentHistory. Tramite questa vista vengono restituiti valori da due tabelle.This view returns values from two tables. Questa istruzione viene completata perché le colonne modificate provengono solo da una delle tabelle di base.This statement succeeds because the columns being modified are from only one of the base tables.

    USE AdventureWorks2012 ;   
    GO  
    UPDATE HumanResources.vEmployeeDepartmentHistory  
    SET StartDate = '20110203', EndDate = GETDATE()   
    WHERE LastName = N'Smith' AND FirstName = 'Samantha';   
    GO  
    

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

Per inserire i dati della tabella tramite una vistaTo insert table data through 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 inserisce una nuova riga nella tabella di base HumanResouces.Department specificando le relative colonne dalla vista HumanResources.vEmployeeDepartmentHistory.The example inserts a new row into the base table HumanResouces.Department by specifying the relevant columns from the view HumanResources.vEmployeeDepartmentHistory. L'istruzione viene completata perché sono specificate solo colonne di una singola tabella di base mentre le altre colonne in questa tabella dispongono di valori predefiniti.The statement succeeds because only columns from a single base table are specified and the other columns in the base table have default values.

    USE AdventureWorks2012 ;  
    GO  
    INSERT INTO HumanResources.vEmployeeDepartmentHistory (Department, GroupName)   
    VALUES ('MyDepartment', 'MyGroup');   
    GO  
    

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