Modificar datos mediante una vistaModify Data Through a View

SE APLICA A: síSQL Server síAzure SQL Database síAzure Synapse Analytics (SQL DW) síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Puede modificar los datos de una tabla base subyacente en SQL Server 2019 (15.x)SQL Server 2019 (15.x) mediante SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.You can modify the data of an underlying base table in SQL Server 2019 (15.x)SQL Server 2019 (15.x) by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Antes de comenzarBefore You Begin

Limitaciones y restriccionesLimitations and Restrictions

PermisosPermissions

Requiere los permisos UPDATE, INSERT o DELETE en la tabla de destino, en función de la acción que se realizará.Requires UPDATE, INSERT, or DELETE permissions on the target table, depending on the action being performed.

Uso de SQL Server Management StudioUsing SQL Server Management Studio

Para modificar los datos de la tabla mediante una vistaTo modify table data through a view

  1. En el Explorador de objetos, expanda la base de datos que contiene la vista y, a continuación, expanda Vistas.In Object Explorer, expand the database that contains the view and then expand Views.

  2. Haga clic con el botón derecho en la vista y seleccione Editar las primeras 200 filas.Right-click the view and select Edit Top 200 Rows.

  3. Quizás necesite modificar la instrucción SELECT en el panel SQL para devolver las filas que se modificarán.You may need to modify the SELECT statement in the SQL pane to return the rows to be modified.

  4. En el panel de Resultados , busque la fila que se va a cambiar o eliminar.In the Results pane, locate the row to be changed or deleted. Para eliminar la fila, haga clic con el botón derecho en ella y seleccione Eliminar.To delete the row, right-click the row and select Delete. Para cambiar los datos de una o más columnas, modifique los datos de la columna.To change data in one or more columns, modify the data in the column.

    IMPORTANTE:IMPORTANT!! No se puede eliminar una fila si la vista hace referencia a más de una tabla base.You cannot delete a row if the view references more than one base table. Solo pueden actualizarse las columnas que pertenecen a una única tabla base.You can only update columns that belong to a single base table.

  5. Para insertar una fila, desplácese hasta el final de las filas e inserte los nuevos valores.To insert a row, scroll down to the end of the rows and insert the new values.

    IMPORTANTE:IMPORTANT! No se puede insertar una fila si la vista hace referencia a más de una tabla base.You cannot insert a row if the view references more than one base table.

Usar Transact-SQLUsing Transact-SQL

Para actualizar los datos de la tabla mediante una vistaTo update table data through a view

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datosDatabase Engine.In Object Explorer, connect to an instance of Motor de base de datosDatabase Engine.

  2. En la barra de Estándar, haga clic en Nueva consulta.On the Standard bar, click New Query.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.Copy and paste the following example into the query window and click Execute. Este ejemplo cambia el valor de las columnas StartDate y EndDate de un empleado concreto mediante referencias a columnas de la 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. Esta vista devuelve valores de dos tablas.This view returns values from two tables. Esta instrucción se realiza correctamente porque las columnas que se modificaron solo provienen de una de las tablas 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  
    

Para obtener más información, vea UPDATE (Transact-SQL).For more information, see UPDATE (Transact-SQL).

Para insertar datos de tabla mediante una vistaTo insert table data through a view

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datosDatabase Engine.In Object Explorer, connect to an instance of Motor de base de datosDatabase Engine.

  2. En la barra de Estándar, haga clic en Nueva consulta.On the Standard bar, click New Query.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.Copy and paste the following example into the query window and click Execute. El ejemplo especifica las columnas relevantes de la vista HumanResouces.Department para insertar una nueva fila en la tabla base HumanResources.vEmployeeDepartmentHistory.The example inserts a new row into the base table HumanResouces.Department by specifying the relevant columns from the view HumanResources.vEmployeeDepartmentHistory. La instrucción se realiza correctamente porque solo se especifican las columnas de una tabla base y las demás columnas de la tabla base tienen valores predeterminados.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  
    

Para obtener más información, vea INSERT (Transact-SQL).For more information, see INSERT (Transact-SQL).