2010-04-15 9 views
23

अपडेट हो जाएगी Hypothetically मेरे पास दो टेबल कर्मचारी और स्थान हैं। Additionaly मेरे पास एक व्यू व्यू एम्पलोकेशन है जो कर्मचारी और स्थान में शामिल होकर बनाया जाता है।यदि मैं कोई दृश्य अपडेट करता हूं, तो मेरी मूल तालिका

यदि मैं दृश्य अपडेट करता हूं, तो क्या मूल तालिका में डेटा अपडेट हो जाएगा?

उत्तर

22

जब एक दृश्य के के माध्यम से डेटा को संशोधित Using Views in Microsoft SQL Server

देखना (है कि सम्मिलित या अपडेट करें बयानों का उपयोग कर, है) कुछ सीमाओं मौजूद दृश्य के प्रकार पर निर्भर करता है। दृश्य जो एकाधिक तालिकाओं तक पहुंच सकता है केवल दृश्य में तालिकाओं में से एक को संशोधित कर सकता है। फ़ंक्शन का उपयोग करने वाले दृश्य, DISTINCT निर्दिष्ट करें, या ग्रुप BY खंड का उपयोग अद्यतन नहीं किया जा सकता है। साथ ही, डेटा डालने विचारों के निम्नलिखित प्रकार के लिए निषिद्ध है:

* views having columns with derived (i.e., computed) data in the SELECT-list 
* views that do not contain all columns defined as NOT NULL from the tables from which they were defined 

यह भी एक दृश्य के इस तरह के डेटा कि देखने के माध्यम से सुलभ नहीं रह गया है कि के माध्यम से अद्यतन डेटा डालने या संभव है, जब तक चेक विकल्प निर्दिष्ट नहीं किया गया है।

+0

एक दृश्य के माध्यम से डालने पर इतने सारे चेतावनियां रहे हैं, कि मैं व्यक्तिगत रूप से यह सरल तालिकाओं के लिए सीधे सम्मिलित करने के लिए लगता है। आखिरकार, नियमों का अनुपालन करने के लिए आपको अभी भी कौन सी फ़ील्ड जाना चाहिए, और यदि आप जानते हैं कि तालिका को सीधे अपडेट या डालने का कोई कारण नहीं है। – HLGEM

+0

मैंने कभी भी एक दृश्य पर अद्यतन या INSERT नहीं किया है, लेकिन यदि आपके पास एक अनुक्रमित दृश्य है जिसे आप परिवर्तन की आवश्यकता वाली पंक्तियों को तुरंत ढूंढने के लिए उपयोग कर सकते हैं, तो इससे आपको लाभ हो सकता है। उस स्थिति में मैं अद्यतन के एकमात्र उद्देश्य के लिए दृश्य का निर्माण करूंगा। –

12

हां।

किसी दृश्य में "दृश्य" डेटा में उन तालिकाओं से स्वतंत्र अस्तित्व नहीं है जो दृश्य को बनाते हैं। दृश्य, संक्षेप में, संग्रहित SELECT कथन है जो एक तालिका के रूप में masquerades। डेटा मूल सारणी में संग्रहीत होता है और जब आप इसे देखना चाहते हैं तो केवल "इकट्ठा" दृश्य में होता है। यदि दृश्य अद्यतन करने योग्य है (सभी विचार नहीं हैं) अद्यतन तालिका डेटा पर लागू होते हैं।

+0

मैं आपके बिंदु को समझता हूं। लेकिन एक नया सवाल उठता है, यदि दृश्य केवल एक चुनिंदा कथन है, तो दृश्य पर इंडेक्स कैसे बनाए रखा जाता है। जैसे ही कोई व्यक्ति किसी विचार को पूछताछ करता है, सभी सूचकांक पुनर्निर्मित होते हैं। –

+1

केवल अंतर्निहित तालिकाओं पर विचारों पर कोई अनुक्रमणिका नहीं है। जब आप दृश्य से डेटा का अनुरोध करते हैं तो विभिन्न तालिकाओं से पंक्तियों को इकट्ठा करने के लिए डीबीएमएस द्वारा इंडेक्स का उपयोग किया जाता है। (यह एक बिल्कुल नए प्रकार के दृश्य को अनदेखा करता है, "भौतिक दृश्य" जिसमें डेटाबेस डेटा की "छाया" प्रतिलिपि संग्रहीत करता है, प्रभावी रूप से आपके लिए दृश्य को पूर्व-कंप्यूटिंग करता है)। –

5

आप वास्तविक तालिकाओं को सम्मिलित/अद्यतन/हटाने के लिए दृश्य पर एक ट्रिगर का उपयोग कर सकते हैं।

http://www.devarticles.com/c/a/SQL-Server/Using-Triggers-In-MS-SQL-Server/1/

+4

मैं अपने उत्तर पर प्रतिक्रिया की सराहना करता हूं, लेकिन यदि यह नकारात्मक है, तो कोई टिप्पणी क्यों नहीं करता? गलत होने पर मैं सही होना चाहता हूं। –

+4

प्रश्न स्पष्ट रूप से दृश्य को अपडेट करने के प्रभावों के बारे में पूछता है। विकल्प प्रस्तावित करना बहुत अच्छा है और सभी, लेकिन यह सवाल का जवाब नहीं देता है। – Dan

संबंधित मुद्दे

 संबंधित मुद्दे