Modificar vistas

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

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 una vista que está actualmente en uso se modifica mediante ALTER VIEW, el Motor de base de datos impone un bloqueo exclusivo de esquema sobre 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 vistas indizadas; no obstante, quita incondicionalmente todos los índices de la vista.

Permisos

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

Use 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 de diagrama del Diseñador de consultas, realice los cambios a la vista en una o más 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. El ejemplo crea primero una vista y luego la modifica 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
    

Pasos siguientes