sp_refreshview (Transact-sql)

Belirtilen olmayan-şemaya bağlı görünümü meta verileri güncelleştirir. Alttaki nesneleri bağımlı olduğu görünümü değişiklikler nedeniyle kalıcı meta verileri görmek için eski haline gelebilir.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

sp_refreshview [ @viewname = ] 'viewname' 

Bağımsız değişkenler

  • @viewname='viewname'
    Görünüm adıdır. viewnameise nvarchar, hiçbir varsayılan ile. viewnameçok parçalı bir tanımlayıcı olabilir, ancak yalnızca geçerli veritabanında görünümler başvurabilirsiniz.

Dönüş Kodu Değerleri

0 (başarılı) veya sıfır olmayan bir sayı (hata)

Açıklamalar

Görünüm SCHEMABINDING ile oluşturduysanız, sp_refreshview görünüm tanımı etkileyen Görünüm altındaki nesnelere değişiklikler yapıldığında çalıştırılmalıdır. Aksi takdirde, o sorgulandığında görünümü beklenmeyen sonuçlar doğurabilir.

İzinler

Görünüm alter izni ve ortak dil çalışma zamanı (clr) kullanıcı tanımlı türleri ve görünümü sütunları tarafından başvurulan xml şema koleksiyonları başvurular izni gerektirir.

Örnekler

A.Görünüm meta verileri güncelleştiriliyor

Aşağıdaki örnek görünümü meta verileri yeniler Sales.vIndividualCustomer.

USE AdventureWorks2012;
GO
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';

USE AdventureWorks2012;
GO
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';

B.Komut dosyası oluşturma değiştirilen nesne üzerinde bağımlılıkları olan tüm görünümler güncelleştirir

Varsayalım ki tablo Person.Personki, üzerinde görüneceği şekilde oluşturulan görünümleri tanım etkileyecek şekilde değiştirildi Aşağıdaki örnek tabloda bağımlılığı olan tüm görünümler için meta verileri yenileyen bir komut dosyası oluşturur Person.Person.

USE AdventureWorks2012;
GO
SELECT DISTINCT 'EXEC sp_refreshview ''' + name + '''' 
FROM sys.objects AS so 
INNER JOIN sys.sql_expression_dependencies AS sed 
    ON so.object_id = sed.referencing_id 
WHERE so.type = 'V' AND sed.referenced_id = OBJECT_ID('Person.Person');

USE AdventureWorks2012;
GO
SELECT DISTINCT 'EXEC sp_refreshview ''' + name + '''' 
FROM sys.objects AS so 
INNER JOIN sys.sql_expression_dependencies AS sed 
    ON so.object_id = sed.referencing_id 
WHERE so.type = 'V' AND sed.referenced_id = OBJECT_ID('Person.Person');

Ayrıca bkz.

Başvuru

Veritabanı Altyapısı depolanan yordamlar (Transact-sql)

Sistem saklı yordamları (Transact-sql)

c.sys.sql_expression_dependencies (Transact-sql)

sp_refreshsqlmodule (Transact-sql)