Aracılığıyla paylaş


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 ALTER VIEW yapılmadan önce ve sonra aynı isme sahip sütunlarda korunur.

Uyarı

Görünüm sütunlarında, sütun adının izinleri, altta yatan verinin kaynağı ne olursa olsun CREATE VIEW veya ALTER VIEW ifadesi boyunca uygulanır. Örneğin, CREATE VIEW ifadesinde SalesOrderID sütununda izinler verildiyse, bir ALTER VIEW ifadesi SalesOrderID sütununu OrderRef gibi yeniden adlandırabilir ve SalesOrderID ile görünüme bağlı izinlere sahip olmaya devam eder.

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

ALTER VIEW ifadesinin metnini içeren sys.syscomments içindeki 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 ALTER TABLE ifadeleri çalıştırılır, 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ı, eğer görünümde tetikleyiciler yerine INSERT veya UPDATE varsa güncellenebilir. Daha fazla bilgi için CREATE VIEW (Transact-SQL) içindeki Açıklamalar 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

ALTER VIEW hakkında daha fazla bilgi için, CREATE VIEW içindeki Açıklamalara bakınız. (Transact-SQL) bölümünde.

Uyarı

Önceki görünüm tanımı WITH Encryption veya CHECK OPTION kullanılarak oluşturulduysa, bu seçenekler yalnızca ALTER VIEW'da yer aldıkları sürece etkinleştirilir.

Şu anda kullanılan bir görünüm ALTER VIEW kullanılarak değiştirilirse, Veritabanı Altyapısı 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

ALTER VIEW'ı yürütmek için en azından OBJECT üzerinde ALTER izni gerekir.

Ö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ılmıyorsa ve görünüm bırakılıp yeniden oluşturulursa, daha önce kullanılan GRANT ifadesi ve bu görünümle 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.

TABLO OLUŞTUR (Transact-SQL)
GÖRÜNÜM OLUŞTUR (Transact-SQL)
AÇIK GÖRÜNÜM (Transact-SQL)
Saklı Prosedür Oluştur
SEÇ (Transact-SQL)
OLAY VERILERI (Transact-SQL)
Yayın Veritabanlarında Şema Değişiklikleri Yapın