Aracılığıyla paylaş


sp_refreshview (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Belirtilen şemaya bağlı olmayan görünüm için meta verileri güncelleştirir. Görünümün bağlı olduğu temel nesnelerde yapılan değişiklikler nedeniyle bir görünümün kalıcı meta verileri eskiye gidebilir.

Transact-SQL söz dizimi kuralları

Sözdizimi

sp_refreshview [ @viewname = ] 'viewname'
[ ; ]

Tartışmalar

[ @viewname = ] 'görünüm adı'

Görünümün adı. @viewnamenvarchar değeridir ve varsayılan değer yoktur. @viewname çok parçalı bir tanımlayıcı olabilir, ancak yalnızca geçerli veritabanındaki görünümlere başvurabilir.

Dönüş kodu değerleri

0 (başarı) veya sıfır olmayan bir sayı (başarısızlık).

Açıklamalar

Bir görünüm ile SCHEMABINDINGoluşturulmuyorsa, sp_refreshview görünümün altındaki nesnelerde değişiklikler yapıldığında çalıştırılmalıdır ve bu da görünümün tanımını etkiler. Aksi takdirde, görüntü sorguladığınızda beklenmedik sonuçlar verebilir.

İzinler

Görünüm için izin ve REFERENCES görünüm sütunlarının referans verdiği ortak dil çalışma zamanı (CLR) kullanıcı tanımlı türler ve XML şema koleksiyonları için izin gerektirirALTER.

Örnekler

Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.

A. Görünümün meta verilerini güncelleştirme

Aşağıdaki örnek, görünümü Sales.vIndividualCustomeriçin meta verileri yeniler.

USE AdventureWorks2025;
GO

EXECUTE sp_refreshview N'Sales.vIndividualCustomer';

B. Değiştirilen nesneye bağımlılıkları olan tüm görünümleri güncelleştiren bir betik oluşturma

Tablonun Person.Person , üzerinde oluşturulan görünümlerin tanımını etkileyecek şekilde değiştirildiğini varsayalım. Aşağıdaki örnek, tablosuna Person.Personbağımlılığı olan tüm görünümler için meta verileri yenileyen bir betik oluşturur.

USE AdventureWorks2025;
GO

SELECT DISTINCT 'EXECUTE 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');