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

एक संग्रहीत प्रक्रिया क्या है?

संग्रहीत कार्यविधियाँ SQL कथनों का एक बैच है जिसे दो तरीकों से निष्पादित किया जा सकता है। अधिकांश प्रमुख डीबीएम संग्रहीत कार्यविधियों का समर्थन करते हैं; हालांकि, सभी नहीं करते हैं। विशिष्टताओं के लिए आपको अपने विशेष DBMS सहायता दस्तावेज़ों से सत्यापित करने की आवश्यकता होगी। जैसा कि मैं SQL सर्वर से सबसे अधिक परिचित हूं, मैं इसे अपने नमूने के रूप में उपयोग करूंगा।

एक संग्रहीत कार्यविधि बनाने के लिए वाक्य रचना काफी सरल है:

CREATE PROCEDURE <owner>.<procedure name>

     <Param> <datatype>

AS

     <Body>

तो उदाहरण के लिए:

CREATE PROCEDURE Users_GetUserInfo

    @login nvarchar(30)=null

AS

    SELECT * from [Users]
    WHERE ISNULL(@login,login)=login

संग्रहीत प्रक्रियाओं का एक लाभ यह है कि आप डेटा एक्सेस लॉजिक को एक ही स्थान पर केंद्रीकृत कर सकते हैं जो तब डीबीए के अनुकूलन के लिए आसान है। संग्रहीत प्रक्रियाओं में एक सुरक्षा लाभ भी होता है जिसमें आप संग्रहीत कार्यविधि को निष्पादन अधिकार प्रदान कर सकते हैं लेकिन उपयोगकर्ता को अंतर्निहित तालिकाओं पर पढ़ने/लिखने की अनुमति की आवश्यकता नहीं होगी। एसक्यूएल इंजेक्शन के खिलाफ यह एक अच्छा पहला कदम है।

संग्रहीत प्रक्रियाएं डाउनसाइड्स के साथ आती हैं, मूल रूप से आपके मूल सीआरयूडी ऑपरेशन से जुड़े रखरखाव। मान लें कि प्रत्येक तालिका के लिए आपके पास प्राथमिक कुंजी के आधार पर एक सम्मिलित करें, अद्यतन करें, हटाएं और कम से कम एक चयन करें, जिसका अर्थ है कि प्रत्येक तालिका में 4 प्रक्रियाएं होंगी। अब 400 टेबल का एक अच्छा आकार का डेटाबेस लें, और आपके पास 1600 प्रक्रियाएं हैं! और यह माना जा रहा है कि आपके पास डुप्लीकेट नहीं हैं जो आप शायद करेंगे।

यह वह जगह है जहां आपके मूल सीआरयूडी संचालन को स्वत:उत्पन्न करने के लिए ओआरएम या किसी अन्य विधि का उपयोग करने से योग्यता का एक टन होता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2005 का उपयोग करके मैं अल्पविराम से अलग किए गए मानों को अलग-अलग पंक्तियों में कैसे विस्तारित करूं?

  2. SQL में अस्पष्ट स्तंभ नाम के साथ क्वेरी त्रुटि

  3. आप Microsoft SQL सर्वर में अनुक्रम कैसे लागू करेंगे?

  4. SQL सर्वर में sp_add_schedule बनाम sp_add_jobschedule:क्या अंतर है?

  5. SQL सर्वर में डेटाबेस में सभी चेक और विदेशी कुंजी बाधाओं को कैसे अक्षम करें (टी-एसक्यूएल उदाहरण)