Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Modyfikuje wcześniej utworzony widok. Obejmuje to także widok indeksowy. ALTER VIEW nie wpływa na zależne procedury przechowywane ani wyzwalacze i nie zmienia uprawnień.
Transact-SQL konwencje składni
Składnia
ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]
[ WITH <view_attribute> [ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ] [ ; ]
<view_attribute> ::=
{
[ ENCRYPTION ]
[ SCHEMABINDING ]
[ VIEW_METADATA ]
}
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
ALTER VIEW [ schema_name . ] view_name [ ( column_name [ ,...n ] ) ]
AS <select_statement>
[;]
Arguments
schema_name
To nazwa schematu, do którego ten widok należy.
view_name
Czy pogląd ma się zmienić.
kolumna
To nazwa jednej lub więcej kolumn, oddzielonych przecinkami, które mają być częścią określonego widoku.
Ważne
Uprawnienia do kolumn są utrzymywane tylko wtedy, gdy kolumny mają tę samą nazwę przed i po wykonaniu ALTER VIEW.
Uwaga / Notatka
W kolumnach dla widoku uprawnienia do nazwy kolumny obowiązują dla instrukcji CREATE VIEW lub ALTER VIEW, niezależnie od źródła danych bazowych. Na przykład, jeśli uprawnienia są przyznawane kolumnie SalesOrderID w instrukcji CREATE VIEW, instrukcja ALTER VIEW może przemianować kolumnę SalesOrderID, na przykład na OrderRef, i nadal mieć uprawnienia związane z widokiem za pomocą SalesOrderID.
SZYFROWANIE
Dotyczy do: SQL Server 2008 (10.0.x) i nowszych oraz Azure SQL Database.
Szyfruje wpisy w sys.syscomment , które zawierają tekst instrukcji ALTER VIEW. WITH ENCRYPTION uniemożliwia publikację widoku jako części replikacji SQL Server.
POWIĄZANIE SCHEMATU
Wiąże widok ze schematem tabeli lub tabel bazowych. Gdy SCHEMABINDING jest określany, tabele bazowe nie mogą być modyfikowane w sposób wpływający na definicję widoku. Sama definicja widoku musi najpierw zostać zmodyfikowana lub usunięta, aby usunąć zależności od tabeli do modyfikacji. Gdy używasz SCHEMABINDING, select_statement musi zawierać nazwy dwuczęściowe (schemat.obiekt) tabel, widoków lub funkcji definiowanych przez użytkownika, do których się odwołuje. Wszystkie obiekty referencji muszą znajdować się w tej samej bazie danych.
Widoki lub tabele uczestniczące w widoku utworzonym za pomocą klauzuli SCHEMABINDING nie mogą zostać usunięte, chyba że widok zostanie usunięty lub zmieniony tak, że nie ma już wiązania schematu. W przeciwnym razie silnik bazy danych zgłasza błąd. Ponadto wykonywanie instrukcji ALTER TABLE na tabelach uczestniczących w widokach wiążących schemat nie działa, jeśli te instrukcje wpływają na definicję widoku.
VIEW_METADATA
Określa, że instancja SQL Server zwraca do API DB-Library, ODBC i OLE DB informacje o metadanych widoku, zamiast bazowej tabeli lub tabel, gdy metadane w trybie przeglądania są wymagane dla zapytania odnoszącego się do widoku. Metadane w trybie przeglądania to dodatkowe metadane, które instancja Database Engine zwraca do API DB-Library, ODBC i OLE DB po stronie klienta. Te metadane umożliwiają API po stronie klienta implementację aktualizowalnych kursorów po stronie klienta. Metadane w trybie przeglądania zawierają informacje o tabeli bazowej, do której należą kolumny w zbiorze wyników.
Dla widoków utworzonych z VIEW_METADATA, metadane w trybie przeglądania zwracają nazwę widoku, a nie nazwy tabel bazowych, gdy opisuje kolumny z widoku w zbiorze wyników.
Gdy widok jest tworzony za pomocą WITH VIEW_METADATA, wszystkie jego kolumny, z wyjątkiem kolumny znacznika czasu , są aktualizowane, jeśli widok ma INSERT lub UPDATE zamiast wyzwalaczy. Więcej informacji można znaleźć w sekcji Uwagi w WIDOKU CREATE (Transact-SQL).
GDY
To działania, które ma podjąć pogląd.
select_statement
To polecenie SELECT definiujące widok.
Z OPCJĄ ZAZNACZENIA
Wymusza wszystkie stwierdzenia modyfikacji danych wykonywane wbrew poglądowi do spełniania kryteriów ustalonych w select_statement.
Uwagi
Więcej informacji o ALTER VIEW można znaleźć w artykule Uwagi w CREATE VIEW (Transact-SQL).
Uwaga / Notatka
Jeśli poprzednia definicja widoku została utworzona za pomocą Z SZYFROWANIEM lub ZAZNACZ OPCJĘ, te opcje są włączane tylko wtedy, gdy są zawarte w ALTER VIEW.
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.
Permissions
Aby wykonać polecenie ALTER VIEW, wymagane jest co najmniej uprawnienie ALTER dla OBIEKTU.
Przykłady
Poniższy przykład tworzy widok zawierający wszystkich pracowników oraz ich daty zatrudnienia, zwany .EmployeeHireDate Uprawnienia do widoku są przyznawane, ale wymagania są zmieniane dla wybranych pracowników, których daty zatrudnienia przypadają na wcześniejszą datę. Następnie używa się do ALTER VIEW zastąpienia widoku.
USE AdventureWorks2022;
GO
CREATE VIEW HumanResources.EmployeeHireDate
AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person AS p
ON e.BusinessEntityID = p.BusinessEntityID ;
GO
Pogląd musi zostać zmieniony tak, aby obejmował tylko pracowników zatrudnionych przed 2002. Jeśli ALTER VIEW nie jest używany, lecz widok zostaje usunięty i ponownie utworzony, wcześniej użyte polecenie GRANT oraz inne instrukcje dotyczące uprawnień dotyczących tego widoku muszą zostać ponownie wprowadzone.
ALTER VIEW HumanResources.EmployeeHireDate
AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person AS p
ON e.BusinessEntityID = p.BusinessEntityID
WHERE HireDate < CONVERT(DATETIME,'20020101',101) ;
GO
Zobacz też
CREATE TABLE (Transact-SQL)
UTWÓRZ WIDOK (Transact-SQL)
WIDOK SPADNY (Transact-SQL)
Utwórz procedurę składowaną
WYBIERZ (Transact-SQL)
DANE ZDARZEŃ (Transact-SQL)
Wprowadź zmiany schematu w bazach publikacji