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.
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)