Modificar vistas

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsBase de datos de Azure SQL en Microsoft Fabric

Después de definir una vista, puede modificar su definición en el motor de base de datos de SQL Server sin quitar y volver a crear la vista mediante SQL Server Management Studio o Transact-SQL.

Limitaciones y restricciones

  • La modificación de una vista no afecta a ningún objeto dependiente, como procedimientos almacenados o desencadenadores, a menos que la definición de la vista cambie de forma que el objeto dependiente ya no sea válido.

  • Si se modifica una vista que se esté usando actualmente mediante ALTER VIEW, el Motor de base de datos aplica un bloqueo de esquema exclusivo a la vista. Cuando se concede el bloqueo y no hay usuarios activos de la vista, el Motor de base de datos elimina todas las copias de la vista de la caché de procedimientos. Los planes existentes que hacen referencia a la vista permanecen en la caché, pero se vuelven a compilar cuando se llaman.

  • ALTER VIEW se puede aplicar a las vistas indizadas; sin embargo, ALTER VIEW quita incondicionalmente todos los índices de la vista.

Permisos

Para ejecutar ALTER VIEW, como mínimo, se requiere el permiso ALTER en OBJECT.

Uso de SQL Server Management Studio

  1. En Explorador de objetos, seleccione el signo más situado junto a la base de datos donde se encuentra la vista y, a continuación, seleccione el signo más situado junto a la carpeta Vistas.

  2. Haga clic con el botón derecho en la vista que quiere modificar y seleccione Diseño.

  3. En el panel Diagrama del diseñador de consultas, realice cambios en la vista de una o varias de las siguientes maneras:

    1. Active o desactive las casillas de cualquier elemento que desee agregar o quitar.

    2. Haga clic con el botón derecho en el panel de diagrama, seleccione Agregar tabla y, luego, las columnas adicionales que quiere agregar a la vista del cuadro de diálogo Agregar tabla.

    3. Haga clic con el botón derecho en la barra de título de la tabla que quiere quitar y seleccione Quitar.

  4. En el menú Archivo, seleccione Guardar nombre de vista.

Uso de Transact-SQL

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

  2. En la barra Estándar, seleccione Nueva consulta.

  3. Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar. En primer lugar, el ejemplo crea una vista y, a continuación, modifica la vista mediante ALTER VIEW. La cláusula WHERE se agrega a la definición de la vista.

    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