Megosztás a következőn keresztül:


ALTERNATÍV NÉZET (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Módosítja a korábban létrehozott nézetet. Ez magában foglalja az indexelt nézetet is. Az ALTER VIEW nem befolyásolja a függő tárolt eljárásokat vagy triggereket, és nem változtatja meg a jogosultságokat.

Transact-SQL szintaxis konvenciók

Szemantika

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
Ez annak a sémának a neve, amelyhez a nézet tartozik.

nézet_név
A megváltozásra való nézet.

oszlop
Egy vagy több oszlop neve, amelyeket vesszőkkel választanak el, és amelyek a megadott nézet részei lesznek.

Fontos

Az oszlopjogosultságok csak akkor maradnak fenn, ha az oszlopok ugyanazt a nevet viselik az ALTER VIEW végrehajtása előtt és után.

Megjegyzés:

A nézet oszlopaiban az oszlopnév jogosultságai érvényesek egy CREATE VIEW vagy ALTER VIEW utasítás alatt, függetlenül az alap forrástól. Például, ha a CREATE VIEW utasításban a SalesOrderID oszlopban engedélyek vannak, az ALTER VIEW utasítás átnevezheti a SalesOrderID oszlopot, például OrderRef-re, és továbbra is megkapja a nézethez tartozó jogosultságokat a SalesOrderID használatával.

TITKOSÍTÁS
Érvényes: SQL Server 2008 (10.0.x) és újabb verziók, valamint Azure SQL Database.

Titkosítja azokat a bejegyzéseket a sys.syscomments fájlokban, amelyek tartalmazzák az ALTER VIEW utasítás szövegét. A TITKOSÍTÁSSAL EGYÜTT megakadályozza, hogy a nézet az SQL Server replikáció részeként megjelenjen.

SÉMAKÖTÉS
A nézetet a tábla vagy táblák sémájához köti. Amikor a SCHEMABINDING meg van szabva, az alaptáblákat nem lehet úgy módosítani, hogy az befolyásolja a nézet definícióját. Magát a nézet definícióját először módosítani vagy el kell hagyni, hogy eltávolítsuk a módosítandó tábla függőségeit. AMIKOR A SKEMABINDINGET HASZNÁLJUK , select_statement tartalmaznia kell a kétrészes neveket (séma.objektum) táblázatok, nézetek vagy felhasználó által definiált függvények, amelyek hivatkoznak. Minden hivatkozott objektumnak ugyanabban az adatbázisban kell lennie.

Azok a nézetek vagy táblák, amelyek részt vesznek egy SCHEMABINDING záradéktal létrehozott nézetben, nem hagyhatók el, hacsak az adott nézetet eltávolítják vagy módosítják, így már nem lesz séma kötelék. Ellenkező esetben az Adatbázis Motor hibát okoz. Emellett az ALTER TABLE utasítások végrehajtása olyan táblákon, amelyek részt vesznek olyan nézetekben, amelyekben séma kötés van, akkor nem működik, ha ezek az állítások befolyásolják a nézet definícióját.

VIEW_METADATA
Megadja, hogy az SQL Server példánya visszaadja a nézet metaadatadatait a DB-Library, ODBC és OLE DB API-kba, nem az alaptáblára vagy táblákra, amikor böngészési módban egy lekérdezéshez kérnek metaadatokat, amely a nézetre hivatkozik. A böngészési mód metaadatok további metaadatok, amelyeket az Database Engine példánya visszaad a kliensoldali DB-Library, ODBC és OLE DB API-kba. Ez a metaadat lehetővé teszi a kliens oldali API-k számára, hogy frissíthető kliensoldali kurzorokat valósítsanak meg. A böngészési módú metaadatok tartalmazzák az alaptáblát, amelyhez az eredményhalmaz oszlopai tartoznak.

Az VIEW_METADATA-vel létrehozott nézeteknél a böngészési mód metaadat a nézet nevét adja vissza, nem az alaptábla neveket, amikor az eredményhalmazban lévő nézetből származó oszlopokat írja le.

Amikor egy nézetet WITH VIEW_METADATA használatával hoznak létre, az összes oszlopa, kivéve egy időbélyeg oszlopot, frissíthető, ha a nézetben INSERT vagy UPDATE van trigger helyett. További információért lásd a CREATE VIEW (Transact-SQL) megjegyzések szekcióját.

AMINT
A nézetnek meg kell tennie a lépéseit?

select_statement
Ez a SELECT utasítás, amely a nézetet definiálja.

ELLENŐRZŐ OPCIÓVAL
Arra kényszeríti, hogy minden adatmódosítási utasítás, amelyet a nézet ellen hajtanak végre, hogy kövessék a select_statement-n belülről meghatározott kritériumokat.

Megjegyzések

További információért az ALTER VIEW-ról lásd: Megjegyzések a CREATE VIEW (Transact-SQL) című részben.

Megjegyzés:

Ha az előző nézet definícióját WITH ENCRYPTION vagy CHECK OPTION használatával hozták létre, ezek az opciók csak akkor engedélyezettek, ha az ALTER VIEW-ban szerepelnek.

Ha egy jelenleg használt nézetet módosít az ALTER VIEW használatával, az adatbázismotor kizárólagos sémazárolást alkalmaz a nézeten. Ha a zárolás meg van adva, és nincsenek aktív felhasználói a nézetnek, az adatbázismotor törli a nézet összes példányát az eljárásgyorsítótárból. A nézetre hivatkozó meglévő tervek továbbra is a gyorsítótárban maradnak, de amikor meghívják, újrafordításra kerülnek.

Az ALTER VIEW az indexelt nézetekre alkalmazható; az ALTER VIEW azonban feltétel nélkül elveti a nézet összes indexét.

Permissions

Az ALTER VIEW végrehajtásához legalább alter engedélyre van szükség az OBJEKTUMon.

Példák

A következő példa egy olyan nézetet hoz létre, amely tartalmazza az összes alkalmazottat és a felvételi dátumokat, amelyet .EmployeeHireDate A nézethez engedélyek kerülnek, de a követelmények megváltoznak, hogy kiválasztják azokat az alkalmazottakat, akiknek a felvételi dátuma egy adott dátum előtt esik. Ezután ALTER VIEW a nézet helyettesítésére használják.

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  

A nézetet meg kell változtatni, hogy csak azokat az alkalmazottakat foglalja magában, akiket korábban 2002alkalmaztak. Ha nem használják az ALTER VIEW-t, hanem a nézetet elhagyják és újraalkotják, akkor a korábban használt GRANT nyilatkozatot és minden más, az ehhez kapcsolódó jogosultságokkal foglalkozó állítást újra be kell vinni.

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  

Lásd még:

CREATE TABLE (Transact-SQL)
NÉZET LÉTREHOZÁSA (Transact-SQL)
DROP VIEW (Transact-SQL)
Tárolt eljárás létrehozása
VÁLASZT (Transact-SQL)
ESEMÉNYADATOK (Transact-SQL)
Sémamódosítások a kiadványi adatbázisokon