Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Ändrar en tidigare skapad vy. Detta inkluderar en indexerad vy. ALTER VIEW påverkar inte beroende lagrade procedurer eller triggers och ändrar inte behörigheter.
Transact-SQL syntaxkonventioner
Syntax
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
Är namnet på schemat som vyn tillhör.
view_name
Är åsikten att förändras.
kolumn
Är namnet på en eller flera kolumner, separerade av kommatecken, som ska ingå i den angivna vyn.
Viktigt!
Kolumnbehörigheter bibehålls endast när kolumner har samma namn före och efter att ALTER VIEW utförs.
Anmärkning
I kolumnerna för vyn gäller behörigheterna för ett kolumnnamn över en sats CREATE VIEW eller ALTER VIEW, oavsett källan till den underliggande datan. Till exempel, om behörigheter beviljas i kolumnen SalesOrderID i ett CREATE VIEW-uttalande, kan ett ALTER VIEW-uttalande byta namn på kolumnen SalesOrderID , till exempel till OrderRef, och ändå ha behörigheterna kopplade till vyn med SalesOrderID.
KRYPTERING
Gäller för: SQL Server 2008 (10.0.x) och senare samt Azure SQL Database.
Krypterar posterna i sys.syscomments som innehåller texten i ALTER VIEW-satsen. WITH ENCRYPTION förhindrar att vyn publiceras som en del av SQL Server-replikeringen.
SCHEMABINDNING
Binder vyn till schemat för den underliggande tabellen eller tabellerna. När SCHEMABINDING specificeras kan bastabellerna inte ändras på ett sätt som påverkar vydefinitionen. Själva vydefinitionen måste först ändras eller tas bort för att ta bort beroenden i tabellen som ska ändras. När du använder SCHEMABINDING måste select_statement inkludera de tvådelade namnen (schema.objekt) av tabeller, vyer eller användardefinierade funktioner som refereras. Alla refererade objekt måste finnas i samma databas.
Vyer eller tabeller som deltar i en vy skapad med SCHEMABINDING-klausulen kan inte tas bort, om inte den vyn tas bort eller ändras så att den inte längre har schemabindning. Annars ger databasmotorn ett fel. Dessutom misslyckas körning av ALTER TABLE-satser på tabeller som deltar i vyer med schemabindning om dessa satser påverkar vydefinitionen.
VIEW_METADATA
Specificerar att instansen av SQL Server kommer att returnera metadatainformationen om vyn till DB-biblioteket, ODBC och OLE DB API:erna, istället för bastabellen eller tabellerna, när blädringslägesmetadata begärs för en fråga som refererar till vyn. Browse-mode metadata är ytterligare metadata som instansen av Database Engine returnerar till klientsidans DB-bibliotek, ODBC och OLE DB API:er. Denna metadata gör det möjligt för klientsidans API:er att implementera uppdaterbara klientsidans markörer. Blädderlägesmetadata inkluderar information om bastabellen som kolumnerna i resultatuppsättningen tillhör.
För vyer skapade med VIEW_METADATA returnerar blädderlägesmetadata vyns namn och inte bastabellernas namn när den beskriver kolumner från vyn i resultatuppsättningen.
När en vy skapas med WITH VIEW_METADATA kan alla dess kolumner, förutom en tidsstämpelkolumn , uppdateras om vyn har INSERT eller UPDATE ISTÄLLET FÖR triggers. För mer information, se avsnittet Anmärkningar i SKAPA VY (Transact-SQL).
SOM
Är det handlingar som synsättet ska ta.
select_statement
Är SELECT-satsen som definierar vyn.
MED CHECK-ALTERNATIV
Tvingar alla dataändringar som utförs mot visningen att följa kriterierna som satts i select_statement.
Anmärkningar
För mer information om ALTER VIEW, se Anmärkningar i CREATE VIEW (Transact-SQL).
Anmärkning
Om den tidigare vydefinitionen skapades med WITH ENCRYPTION eller CHECK OPTION, aktiveras dessa alternativ endast om de ingår i ALTER VIEW.
Om en vy som används för närvarande ändras med hjälp av ALTER VIEW, tar databasmotorn ett exklusivt schemalås på vyn. När låset har beviljats och det inte finns några aktiva användare av vyn tar databasmotorn bort alla kopior av vyn från procedurens cacheminne. Befintliga planer som refererar till vyn finns kvar i cacheminnet men kompileras om när de anropas.
ALTER VIEW kan tillämpas på indexerade vyer. ALTER VIEW släpper dock villkorslöst alla index i vyn.
Permissions
Om du vill köra ALTER VIEW krävs minst ALTER-behörighet för OBJECT.
Examples
Följande exempel skapar en vy som innehåller alla anställda och deras anställningsdatum kallad EmployeeHireDate. Behörigheter ges till visningen, men kraven ändras för att välja anställda vars anställningsdatum infaller före ett visst datum. Sedan ALTER VIEW används för att ersätta vyn.
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
Synsättet måste ändras till att endast omfatta de anställda som anställdes tidigare 2002. Om ALTER VIEW inte används, utan istället vyn släpps och återskapas, måste den tidigare använda GRANT-satsen och alla andra uttalanden som hanterar behörigheter relaterade till denna vy matas in igen.
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
Se även
SKAPA TABELL (Transact-SQL)
SKAPA VY (Transact-SQL)
DROP VIEW (Transact-SQL)
Skapa en lagrad procedur
SELECT (Transact-SQL)
HÄNDELSEDATA (Transact-SQL)
Gör schemaändringar i publikationsdatabaser