değiştirir:SQL Server Bu soru benim bir önceki yazı/çözümün çıktı
adding a field somehow effects a views results
IMO kendi yazı hak ediyor. SQL Server 2008 R2'yi kullanma.
Görünümde başvurulan bir tabloya bir sütun ekledikten sonra, neden görünümleri yenilemek zorundayım? Bu gönderi/soruyu cevaplamak için doğrudan gerekli olmasa da, özel senaryonun senaryo/davranışları, yukarıda bağlantılı olan postayla açıklanmaktadır.
Ben büyük bir hayran yelpazesi değilim. Çok nadiren onları dürüst olmak için yaratıyorum, orijinal olarak yazmadığım bir kodla çalışıyorum. Asıl yazmadığınız 70'den fazla görünümünüz olduğunu varsayalım. Bu nedenle, bir veri tabanı sütunu eklediğinizde hangisinin yenilenmesi gerektiğine dair hiçbir fikriniz yok. Herhangi bir tablonun ne olursa olsun herhangi bir tabloyu herhangi bir etki yapmadan net olarak ekleyebilmem gerekir. Bir iş birimi, herhangi bir zamanda eklenmiş herhangi bir sayıda alan gerektirebilecek her türlü değişiklik talebini artırabilir.
Elbette buna başka bir yaklaşım var mı?
Görünüm, her arandığında kendisini dinamik olarak yeniden düzenlemek için yalnızca bir sorgu değil. Bir şema, sütun ve benzeri ile örneklenmiştir. Sonuç kümesine ek sütun eklemenin beklenmedik şekilde davranabileceği birçok durum vardır (başvuru yaptığınız bağlantıdaki gibi). Bu tür, istediğiniz daha fazla lax uygulamasının ters yönüne giderken, görünümler, alttaki nesnelere şema değişikliklerini yasaklayan SCHEMABINDING seçeneği ile de bildirilebilir. Ancak, birkaç yerde belirtildiği gibi, yeni bir sütun almak için bir şema istiyorsanız, sp_refreshview – Xedni
kullanmanız gerekir. Zaman ayırdığınız için teşekkür ederiz. Hoşlanmasam da, mantıklı. Görüşlere kaynak verimliliği avantajı olduğunun farkındayım. Bu, şu anda onları daha az sevdiğime eminim. Bir tabloya bir sütun eklemenin bir sonucu olarak bugün gördüğüm son kullanıcı deneyimi 0 düzensiz oldu. – Mat41
Görünümler her zaman kötü değil. Karmaşık sorguları basitleştirmek, uygulamalarda veya depolanmış prozlar arasında paylaşılabilen sorgularda iş kurallarını standart hale getirmek, üçüncü parti veritabanlarına (özellikle de AE1401 gibi arkaik isimleri olan eski kitaplar) sorgulamak alan adı FN144, vb.) ve uygulamalar bir tabloyu paylaştığında, alttaki tablo alanı değişmişse, görünüm adı birden fazla uygulamayı değiştirmenizi zorlamayacak şekilde aynı kalabilir. –