Изменение представлений

Применимо к:SQL ServerAzure SQL DatabaseAzure Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

После определения представления можно изменить его определение в ядре СУБД SQL Server без удаления и повторного создания представления с помощью SQL Server Management Studio или Transact-SQL.

ограничения

  • Изменение представления не влияет на зависимые объекты, такие как хранимые процедуры или триггеры, если определение представления не изменяется таким образом, чтобы зависимый объект больше не был допустимым.

  • При изменении текущего представления с помощью инструкции ALTER VIEW ядра СУБД осуществляет монопольную блокировку схемы представления. Если блокировка предоставлена, и с представлением в настоящий момент не работает ни один пользователь, ядро СУБД удаляет все копии представления из кэша процедур. Существующие планы, ссылающиеся на представление, остаются в кэше, но при обращении к ним выполняется повторная компиляция.

  • Инструкцию ALTER VIEW можно выполнять для индексированных представлений, однако она удаляет все индексы представления.

Разрешения

Для выполнения инструкции ALTER VIEW необходимо как минимум разрешение ALTER на объект.

Использование среды SQL Server Management Studio

  1. В обозревателе объектов выберите знак плюса рядом с базой данных, где находится представление, а затем щелкните знак плюса рядом с папкой Views .

  2. Щелкните правой кнопкой мыши представление, которое нужно изменить, и выберите пункт Конструктор.

  3. На панели диаграмм конструктора запросов внесите изменения в представление одним из следующих способов.

    1. Установите или снимите флажки элементов, которые необходимо добавить или удалить.

    2. Щелкните правой кнопкой мыши на панели диаграмм, выберите Добавить таблицу…, а затем выберите дополнительные столбцы, которые необходимо добавить к представлению, в диалоговом окне Добавить таблицу.

    3. Щелкните правой кнопкой мыши строку заголовка таблицы, которую необходимо удалить, и выберите Удалить.

  4. В меню "Файл" выберите "Сохранить имя представления".

Использование Transact-SQL

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере сначала создается представление, а затем оно изменяется с помощью инструкции ALTER VIEW. Предложение WHERE добавляется к определению представления.

    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
    

Далее