Modificar datos mediante una vista

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Puede modificar los datos de una tabla base subyacente en SQL Server mediante SQL Server Management Studio o Transact-SQL.

Antes de empezar

Limitaciones y restricciones

Permisos

Requiere los permisos UPDATE, INSERT o DELETE en la tabla de destino, en función de la acción que se realizará.

Uso de SQL Server Management Studio

Para modificar los datos de la tabla mediante una vista

  1. En el Explorador de objetos, expanda la base de datos que contiene la vista y, a continuación, expanda Vistas.

  2. Haga clic con el botón derecho en la vista y seleccione Editar las primeras 200 filas.

  3. Quizás necesite modificar la instrucción SELECT en el panel SQL para devolver las filas que se modificarán.

  4. En el panel de Resultados , busque la fila que se va a cambiar o eliminar. Para eliminar la fila, haga clic con el botón derecho en ella y seleccione Eliminar. Para cambiar los datos de una o más columnas, modifique los datos de la columna.

    Importante

    No se puede eliminar una fila si la vista hace referencia a más de una tabla base. Solo pueden actualizarse las columnas que pertenecen a una única tabla base.

  5. Para insertar una fila, desplácese hasta el final de las filas e inserte los nuevos valores.

    Importante

    No se puede insertar una fila si la vista hace referencia a más de una tabla base.

Usar Transact-SQL

Para actualizar los datos de la tabla mediante una vista

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra de Estándar, haga clic en Nueva consulta.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. Este ejemplo cambia el valor de las columnas StartDate y EndDate de un empleado concreto mediante referencias a columnas de la vista HumanResources.vEmployeeDepartmentHistory. Esta vista devuelve valores de dos tablas. Esta instrucción se realiza correctamente porque las columnas que se modificaron solo provienen de una de las tablas base.

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

Para obtener más información, consulte UPDATE (Transact-SQL).

Para insertar datos de tabla mediante una vista

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra de Estándar, haga clic en Nueva consulta.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. El ejemplo especifica las columnas relevantes de la vista HumanResouces.Department para insertar una nueva fila en la tabla base 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.

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

Para más información, vea INSERT (Transact-SQL).