SQL Server’da Tüm Viewları sp_refreshview Prosedürü ile Yenilemek
Herkese merhaba,
Bu yazıda SQL Server’da tüm viewları sp_refreshview prosedürü ile yenilemek hakkında bilgi vereceğim.
Aslına bakarsanız konu yazılım tarafını da ilgilendirmekte. Nedenine gelince.
SQL Server’da bir view oluşturdunuz diyelim. Bu view’ın select sorgusu ile tüm kolonları çektiğini varsayalım. Buraya kadar sıkıntı yok.
Sonrasında bu view’ı kullanan tablomuza bir alan ekleyelim.
View sorgumuza select attığımız zaman bu kolonu göremeyeceğiz.
Bunun çözümü tek bir view için aşağıdaki gibi olabilir.
View’i Alter edebilirsiniz.
View’i Drop edip sonrasında Create edebilirsiniz
sp_refreshview prosedürünü kullanabilirsiniz.
Tabi yüzlerce view kullanıyorsanız takip etmek biraz zor olabilir. Bu yüzden Tüm Viewları sp_refreshview Prosedürü ile Yenilemek adı altında bir yazı yazmak istedim.
Aşağıdaki kod ile bu işlemi oldukça kolay yapabilirsiniz.
DECLARE @sqlkomut NVARCHAR(MAX) = N'';
SELECT @sqlkomut = @sqlkomut + N'EXEC sp_refreshview ''' + name + N''';
'
FROM sys.objects AS so
WHERE so.type = 'V';
--Dinamik sorguyu görüntülemek
SELECT @sqlkomut;
--Dinamik sorguyu doğrudan çalıştırmak için aşağıdaki yorum satırını açın SELECT @sqlkomut kısmını yoruma alın.
--EXEC(@sqlkomut)
Kodu çalıştırdığınızda aşağıdaki gibi bir sonuç göreceksiniz.
Results kısmında gördüğünüz kodları kopyalayıp, ekrana yapıştırıp dilediğinizi çalıştırabilirsiniz ya da SELECT @sqlkomut satırını yorum haline getirip EXEC(@sqlkomut) satırını yorum halinden çıkarıp komple tüm viewlar için bu işlemi yapabilirsiniz.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.