ALTER VIEW (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Upravuje dříve vytvořený pohled. To zahrnuje i indexovaný pohled. ALTER VIEW neovlivňuje závislé uložené procedury ani spouštěče a nemění oprávnění.

Transact-SQL konvence syntaxe

Syntaxe

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
Je název schématu, ke kterému tento pohled patří.

view_name
Je názor k změně.

sloupce
Je název jednoho nebo více sloupců, oddělených čárkami, které mají být součástí určeného pohledu.

Důležité

Oprávnění ke sloupcům jsou zachována pouze tehdy, když mají sloupce stejný název před a po ALTER VIEW provedení.

Poznámka:

Ve sloupcích zobrazení platí oprávnění pro název sloupce napříč příkazem nebo CREATE VIEW příkazem ALTER VIEW bez ohledu na zdroj podkladových dat. Například pokud jsou ve příkazu CREATE VIEW udělena oprávnění na sloupec SalesOrderID, ALTER VIEW může příkaz přejmenovat sloupec SalesOrderID, například na OrderRef, a stále mít oprávnění spojená s tímto zobrazením pomocí SalesOrderID.

ŠIFROVÁNÍ
Platí na: SQL Server 2008 (10.0.x) a pozdější a Azure SQL Database.

Zašifruje položky v sys.syscomments , které obsahují text ALTER VIEW příkazu. WITH ENCRYPTION zabraňuje publikování pohledu jako součásti replikace SQL Serveru.

SCHEMABINDING
Spojuje pohled se schématem podkladové tabulky nebo tabulek. Když je specifikován SCHEMABINDING, základní tabulky nelze upravovat tak, aby ovlivnila definici pohledu. Samotná definice pohledu musí být nejprve upravena nebo odstraněna, aby se odstranily závislosti na tabulce, která má být upravena. Když používáte SCHEMABINDING, select_statement musí obsahovat dvoudílné názvy (schéma.objekt) tabulek, pohledů nebo uživatelem definovaných funkcí, na které se odkazuje. Všechny odkazované objekty musí být ve stejné databázi.

Pohledy nebo tabulky, které se účastní pohledu vytvořeného pomocí klauzule SCHEMABINDING, nelze vyřadit, pokud tento pohled není odstraněn nebo změněn tak, že již nemá schématové vázání. Jinak databázový engine zobrazí chybu. Také provádění příkazů ALTER TABLE v tabulkách, které se účastní pohledů s vázaným schématem, selže, pokud tyto příkazy ovlivňují definici pohledu.

VIEW_METADATA
Specifikuje, že instance SQL Serveru vrátí do databázové knihovny, ODBC a OLE DB API metadata o pohledu, místo základní tabulky nebo tabulek, když jsou požadována metadata v režimu prohlížení pro dotaz, který odkazuje na tento pohled. Metadata v režimu prohlížení jsou další metadata, která instance Database Engine vrací klientským databázovým knihovnám, ODBC a OLE DB API. Tato metadata umožňují klientským API implementovat aktualizovatelné kurzory na straně klienta. Metadata v režimu prohlížení zahrnují informace o základní tabulce, do které sloupce ve výsledné sadě patří.

Pro pohledy vytvořené pomocí VIEW_METADATA metadata v režimu procházení vrací název pohledu, nikoli názvy základních tabulek, když popisují sloupce z pohledu ve výsledné sadě.

Když je pohled vytvořen pomocí WITH VIEW_METADATA, všechny jeho sloupce, kromě sloupce s časovým razítkem , jsou aktualizovatelné, pokud má pohled INSERT spouštěče nebo UPDATE MÍSTO NE. Pro více informací viz sekce Poznámky v CREATE VIEW (Transact-SQL).

PROTOŽE
Jsou to činy, které má pohled podniknout.

select_statement
Je příkaz SELECT, který definuje pohled.

S MOŽNOSTÍ ZAŠKRTNOUT
Nutí všechny příkazy o úpravě dat, které jsou prováděny proti tomuto názoru, aby dodržovaly kritéria stanovená v rámci select_statement.

Poznámky

Pro více informací o ALTER VIEW, viz Poznámky v CREATE VIEW (Transact-SQL).

Poznámka:

Pokud byla předchozí definice zobrazení vytvořena pomocí S ENCRYPTION nebo CHECK OPTION, tyto možnosti jsou povoleny pouze tehdy, pokud jsou zahrnuty v ALTER VIEW.

Pokud je aktuálně použité zobrazení změněno pomocí ALTER VIEW, Database Engine převezme v zobrazení výhradní zámek schématu. Pokud je zámek udělený a nejsou k dispozici žádní aktivní uživatelé zobrazení, databázový stroj odstraní všechny kopie zobrazení z mezipaměti procedur. Existující plány odkazující na zobrazení zůstanou v mezipaměti, ale při vyvolání se znovu kompilují.

ALTER VIEW lze použít na indexovaná zobrazení; ALTER VIEW nepodmíněně však zahodí všechny indexy v zobrazení.

Povolení

Ke spuštění ALTER VIEWse vyžaduje minimálně oprávnění ALTER pro OBJECT.

Examples

Následující příklad vytváří pohled, který obsahuje všechny zaměstnance a jejich data nástupu, nazývaný EmployeeHireDate. Oprávnění k zobrazení jsou udělena, ale požadavky se mění na vybrané zaměstnance, jejichž data nástupu připadají před určité datum. Pak se používá k ALTER VIEW nahrazení pohledu.

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  

Pohled musí být změněn tak, aby zahrnoval pouze zaměstnance, kteří byli najati před .2002 Pokud ALTER VIEW se nepoužije, ale místo toho je zobrazení zrušeno a znovu vytvořeno, musí být znovu zadán dříve použitý GRANT příkaz a jakékoli další příkazy týkající se oprávnění týkajících se tohoto pohledu.

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  

Viz také

CREATE TABLE (Transact-SQL)
CREATE VIEW (Transact-SQL)
DROP VIEW (Transact-SQL)
Vytvoření uložené procedury
SELECT (Transact-SQL)
EVENTDATA (Transact-SQL)
Změny schémat v databázích publikací