Modyfikowanie widoków

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Po zdefiniowaniu widoku można zmodyfikować jego definicję w aparacie bazy danych SQL Server bez usuwania ani ponownego tworzenia widoku, korzystając z SQL Server Management Studio lub Transact-SQL.

Ograniczenia i ograniczenia

  • Modyfikowanie widoku nie ma wpływu na żadne obiekty zależne, takie jak procedury składowane lub wyzwalacze, chyba że definicja widoku zmieni się w taki sposób, że obiekt zależny nie jest już prawidłowy.

  • Jeśli aktualnie używany widok jest modyfikowany przy użyciu funkcji ALTER VIEW, aparat bazy danych przyjmuje wyłączną blokadę schematu w widoku. Po udzieleniu blokady i braku aktywnych użytkowników widoku aparat bazy danych usuwa wszystkie kopie widoku z pamięci podręcznej procedury. Istniejące plany odwołujące się do widoku pozostają w pamięci podręcznej, ale są ponownie kompilowane, kiedy są wywoływane.

  • ALTER VIEW można stosować do widoków indeksowanych; jednak ALTER VIEW bezwarunkowo usuwa wszystkie indeksy w widoku.

Uprawnienia

Aby wykonać polecenie ALTER VIEW, wymagane jest co najmniej uprawnienie ALTER dla OBIEKTU.

Korzystanie z programu SQL Server Management Studio

  1. W eksploratorze obiektów wybierz znak plus obok bazy danych, w której znajduje się widok, a następnie wybierz znak plus obok folderu widoki .

  2. Kliknij prawym przyciskiem myszy widok, który chcesz zmodyfikować, i wybierz pozycję Design.

  3. W okienku diagramu projektanta zapytań wprowadź zmiany w widoku na co najmniej jeden z następujących sposobów:

    1. Zaznacz lub wyczyść pola wyboru wszystkich elementów, które chcesz dodać lub usunąć.

    2. Kliknij prawym przyciskiem myszy w okienku diagramu, wybierz pozycję Dodaj tabelę..., a następnie wybierz dodatkowe kolumny, które chcesz dodać do widoku w oknie dialogowym Dodawanie tabeli .

    3. Kliknij prawym przyciskiem myszy pasek tytułu tabeli, którą chcesz usunąć, a następnie wybierz pozycję Usuń.

  4. W menu plik wybierz pozycję Zapisz nazwę widoku .

Korzystanie z Transact-SQL

  1. W Eksploratorze Obiektów , nawiąż połączenie z wystąpieniem silnika bazy danych.

  2. Na pasku Standardowym wybierz opcję Nowe zapytanie.

  3. Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj. Przykład najpierw tworzy widok, a następnie modyfikuje widok przy użyciu funkcji ALTER VIEW. Klauzula WHERE jest dodawana do definicji widoku.

    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
    

Następne kroki