ALTER VIEW (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Daha önce oluşturulmuş bir görünümü değiştirir. Bu, indekslenmiş bir görünümü içerir. ALTER VIEW bağımlı saklanan prosedürleri veya tetikleyicileri etkilemez ve izinleri değiştirmez.

Transact-SQL söz dizimi kuralları

Sözdizimi

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
Manzaranın ait olduğu şemanın adıdır.

view_name
Değişim görüşü mi?

sütun
Belirtilen görünümün parçası olacak ve virgülle ayrılmış bir veya daha fazla sütunun adıdır.

Önemli

Sütun izinleri, yalnızca sütunlar aynı isme sahip olduğunda ve önce ve ALTER VIEW sonra korunur.

Uyarı

Görünümün sütunlarında sütun adı izinleri, temel alınan verilerin kaynağından bağımsız olarak bir CREATE VIEW veya ALTER VIEW deyiminde geçerlidir. Örneğin, bir CREATE VIEW ifadede SalesOrderID sütununda izinler verildiyse, bir ALTER VIEW ifade SalesOrderID sütunu, örneğin OrderRef olarak yeniden adlandırabilir ve SalesOrderID kullanılarak görünümle ilişkili izinlere sahip olmaya devam edebilir.

ŞİFRELEME
SQL Server 2008 (10.0.x) ve sonrasında ve Azure SQL Veritabanı için geçerlidir.

sys.syscomments dosyasındaki deyim metnini ALTER VIEW içeren girişleri şifreler. WITH ENCRYPTION, görünümün SQL Server çoğaltmasının bir parçası olarak yayınlanmasını engeller.

SCHEMABINDING
Görünümü alttaki tablo veya tabloların şemasına bağlar. SCHEMABINDING belirtildiğinde, temel tablolar görünüm tanımını etkileyecek şekilde değiştirilemez. Görünüm tanımının kendisi önce değiştirilmeli veya çıkarılmalıdır, böylece değiştirilecek tablodaki bağımlılıklar ortadan kaldırılır. SCHEMABINDING kullandığınızda, select_statement iki parçalı isimleri içermelidir (şema.nesne) referans verilen tablolar, görünümler veya kullanıcı tanımlı fonksiyonlar. Tüm referans alan nesneler aynı veritabanında olmalıdır.

SCHEMABINDING maddesiyle oluşturulan bir görünüme katılan görünümler veya tablolar, o görünüm kaldırılmadıkça veya değiştirilmedikçe şema bağlaması kalmadıkça kaldırılamaz. Aksi takdirde, Veritabanı Motoru hata oluşturur. Ayrıca, şema bağlamasına sahip görünümlere katılan tablolarda çalıştırılan ALTER TABLE cümleler, bu ifadeler görünüm tanımını etkilerse başarısız olur.

VIEW_METADATA
SQL Server örneğinin, görünüme referans veren bir sorgu için gezinme modunda meta veri istendiğinde, temel tablo veya tablolar yerine görünümle ilgili meta veri bilgilerini DB-Kütüphanesi, ODBC ve OLE DB DB API'lerine geri döneceğini belirtir. Gezinme modu meta verileri, Veritabanı Motoru örneğinin istemci tarafı DB-Kütüphanesi, ODBC ve OLE DB API'lerine geri döndürüldüğü ek metaveridir. Bu meta veri, istemci tarafı API'lerinin güncellenebilir istemci tarafı imleçleri uygulamasını sağlar. Gezinme modunda meta veriler, sonuç kümesindeki sütunların ait olduğu temel tablo hakkında bilgileri içerir.

VIEW_METADATA ile oluşturulan görünümler için, gezinme modu meta verisi, sonuç kümesinde görünümden sütunları tanımladığında temel tablo adlarını değil, görünüm adını döndürür.

Bir görünüm WITH VIEW_METADATA kullanılarak oluşturulduğunda, zaman damgası sütunu hariç tüm sütunları, görünümde INSERT tetikleyiciler varsa veya UPDATE OF tetikleyicileri varsa güncellenebilir. Daha fazla bilgi için, (Transact-SQL) içindekiCREATE VIEW Yorumlar bölümüne bakınız.

GİBİ
Görüşün yapması gereken eylemler nelerdir?

select_statement
Görünümü tanımlayan SELECT ifadesidir.

ÇEK SEÇENEĞI İLE
Görünüme karşı yürütülen tüm veri değiştirme ifadelerini, select_statement içinde belirlenen kriterleri takip etmeye zorlar.

Açıklamalar

Daha fazla bilgi ALTER VIEWiçin, bkz. (Transact-SQLiçindeki AçıklamalarCREATE VIEW.

Uyarı

Önceki görünüm tanımı Şifreleme ile veya KONTROL SEÇİCİ kullanılarak oluşturulduysa, bu seçenekler yalnızca içerime ALTER VIEWdahil edildiklerinde etkinleştirilir.

Şu anda kullanılan bir görünüm kullanılarak ALTER VIEWdeğiştirilirse, Database Engine görünümde özel bir şema kilidi alır. Kilit verildiğinde ve görünümün etkin kullanıcısı olmadığında, Veritabanı Altyapısı görünümün tüm kopyalarını yordam önbelleğinden siler. Görünüme başvuran mevcut planlar önbellekte kalır ancak çağrıldığında yeniden derlenir.

ALTER VIEW dizinli görünümlere uygulanabilir; ancak, ALTER VIEW görünümdeki tüm dizinleri koşulsuz olarak bırakır.

Permissions

yürütmek ALTER VIEWiçin, en azından OBJECT üzerinde ALTER izni gereklidir.

Örnekler

Aşağıdaki örnek, tüm çalışanları ve işe alım tarihlerini içeren bir görünüm oluşturur.EmployeeHireDate Görünüme izinler verilir, ancak işe alım tarihleri belirli bir tarihten önce olan çalışanların seçilmesi için gereksinimler değiştirilir. Sonra, ALTER VIEW görünümü yerine koymak için kullanılır.

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  

Görüş, yalnızca daha önce 2002işe alınan çalışanları kapsayacak şekilde değiştirilmelidir. Eğer ALTER VIEW kullanılmazsa, ancak görünüm bırakılır ve yeniden oluşturulursa, daha önce kullanılan GRANT ifade ve bu görüşle ilgili izinlerle ilgili diğer ifadeler yeniden girilmelidir.

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  

Ayrıca Bkz.

CREATE TABLE (Transact-SQL)
CREATE VIEW (Transact-SQL)
DROP VIEW (Transact-SQL)
Saklı Prosedür Oluştur
SEÇ (Transact-SQL)
OLAY VERILERI (Transact-SQL)
Yayın Veritabanlarında Şema Değişiklikleri Yapın