] डेटा हेरफेर में एक सामान्य चुनौती। जबकि पारंपरिक दृष्टिकोणों में पुनरावृत्त रूप से पारित करने वाले पैरामीटर मान शामिल होते हैं या स्ट्रिंग हेरफेर का उपयोग करते हुए, एक अधिक कुशल समाधान उपलब्ध है।
SQL सर्वर 2008 ने तालिका-मूल्यवान मापदंडों को पेश किया, जो एक संग्रहीत प्रक्रिया के लिए एक पैरामीटर के रूप में संरचित डेटा के संग्रह को पारित करने की अनुमति देते हैं। यह जटिल स्ट्रिंग हेरफेर या पुनरावृत्त पैरामीटर हैंडलिंग की आवश्यकता को समाप्त कर देता है। ( @Reportid int, @Items के रूप में ItemList-उपयोगकर्ता-परिभाषित तालिका प्रकार ) जैसा शुरू रिपोर्ट में डालें @Reportid का चयन करें, पहचान @Items से
आइटम सूची के लिए कस्टम टेबल प्रकार
आइटम सूची के लिए एक कस्टम तालिका प्रकार बनाने के लिए, निम्न SQL स्टेटमेंट को निष्पादित करें:
क्रिएट टाइप करें टेबल के रूप में आइटम ( में नहीं )
ALTER PROCEDURE AddItemsToReport ( @ReportId int, @Items AS ItemList -- User-defined table type ) AS BEGIN INSERT INTO ReportItem (ReportId, ItemId) SELECT @ReportId, Id FROM @Items ENDअपने C# कोड में C#
से तालिका-मूल्यवान पैरामीटर पास करना, कस्टम तालिका प्रकार का एक उदाहरण बनाएं:
ItemList (); itemlist.rows.add (1); itemlist.rows.add (2); itemlist.rows.add (3); ;पैरामीटर
ALTER PROCEDURE AddItemsToReport ( @ReportId int, @Items AS ItemList -- User-defined table type ) AS BEGIN INSERT INTO ReportItem (ReportId, ItemId) SELECT @ReportId, Id FROM @Items END
डेटाबेस में कई राउंड ट्रिप से बचकर प्रदर्शन में सुधार हुआ। इनपुट डेटा को दृढ़ता से टाइप करके।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3