Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसक्यूएल सर्वर संग्रहित प्रक्रिया में EXEC/sp_executesql या सिर्फ सादा एसक्यूएल का उपयोग करता है?

यहां डायनेमिक SQL का उपयोग करने का कोई कारण नहीं देखें। जब आप करते हैं गतिशील SQL का उपयोग करने की आवश्यकता है, आपको sp_executesql पर विचार करना चाहिए EXEC() . से वरीयता में उच्च . इसके कई कारण हैं, जिनमें शामिल हैं:

  1. sp_executesql क्वेरी योजनाओं का पुन:उपयोग करने की अधिक संभावना है (देखें Dynamic SQL - EXEC(@SQL) बनाम EXEC SP_EXECUTESQL(@SQL) );

  2. दृढ़ता से टाइप किए गए पैरामीटर को sp_executesql . में पास करना बहुत आसान है (एक स्ट्रिंग को संयोजित करने से बेहतर SQL इंजेक्शन को विफल करना); और,

  3. आप डायनेमिक SQL स्कोप के भीतर से वेरिएबल को वापस कॉलिंग स्कोप में भी प्राप्त कर सकते हैं, उदाहरण के लिए:

यह एक बहुत उपयोगी उदाहरण नहीं है, लेकिन गतिशील तारों को निष्पादित करते समय यह एक आम समस्या है। लेकिन इस बिंदु पर अधिक, आपको केवल गतिशील एसक्यूएल पर विचार करना चाहिए, जब आपको पहले उपाय के रूप में नहीं करना चाहिए।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक यूडीएफ एक सबक्वायरी से इतना धीमा क्यों है?

  2. उपयोगकर्ता द्वारा परिभाषित तालिका प्रकारों पर EXECUTE अनुमति अस्वीकार कर दी गई है?

  3. कार्य दिवसों के लिए लापता प्रविष्टियां ढूंढें और निकटतम तिथि से मूल्यों के साथ पंक्ति भरें

  4. यदि मैंने सेटअप में पासवर्ड नहीं डाला है तो SQL Server 2012 के लिए डिफ़ॉल्ट पासवर्ड क्या है?

  5. SQL सर्वर में FILEPROPERTY () का उपयोग कैसे करें