2010-10-05 25 views
12

güncellenebilir db görünümler hakkında bir soru: Ben konuda biraz MSDN belgelerine okuduktan ediyorum ve aşağıdaki kısıtlama rastlamak: GÜNCELLEME, INSERT dahilGüncellenebilir görünümler - SQL Server 2008

Herhangi bir değişiklik, ve DELETE ifadeleri, yalnızca bir taban tablosundan sütunlara başvurmalıdır.

Sadece kısıtlamayı anladığımdan emin olmak istiyorum. Medya inceleme projelerimden birkaçında görüşlerimi kullanmak istiyorum. İlişkisel veriler tablolar boyunca yayılır, ancak bir görünümü birden fazla tablodan (bazıları yabancı anahtarlar ile bağlanmış) merkezi bir konuma yerleştirmek için ihtiyaç duyduğum verileri birleştirmenin en iyi yolu olduğu görülmektedir. Sütunlar çeşitli tablolardan geleceğinden, bu, tüm sütunlardaki değişiklikleri sürdürmek için bir battaniye INSERT veya UPDATE çalıştıramayacağım anlamına mı geliyor?

cevap

11

Evet, bunun anlamı budur. Temel tabloların neye sahip olduğunu bilmeniz gerektiğinden, bir görünüm üzerinden güncelleme yapmanın hiçbir avantajını göremiyorum.

+0

Kuyu: Burada

bir örnektir. –

+0

Görünüm, temel tablodaki anahtar sütunları içerdiği sürece veya SQL Server'ın tablodaki bir satırı benzersiz şekilde tanımlamasına izin vermesi koşuluyla, doğrudan bir görünüm üzerinden güncelleme yapmak artık işleri basitleştirebilir - özellikle bir görünümün bir haritaya eşlendiği durumlarda form veya bir datagrid. Bu, ilk başta biraz önce benimle ilgiliydi, ancak kullanıcı yine de tabloyu güncelleme haklarına hala ihtiyaç duyduğundan, ek güvenlik riski yok. – SqlRyan

+2

Ancak, güncellenen alanlar altta yatan tablolardan geliyorsa çalışmaz. Bu yüzden bir görünümden güncellemek faydalı olmaz. – HLGEM

12

Uygulamanızı yalnızca görünümle ilgili temel tabloların toplanması yerine görünümle uğraşmak için bir görünümde INSTEAD OF tetikleyicisi kullanabilirsiniz. Bunun bakış değerleriyle form alanlarını doldurmak ve aynı şekilde onları geri kazanmak daha kolaydır bilgisi düzenlemek istiyorsanız, Designing INSTEAD OF Triggers