الإجراءات المخزنة في SQL | لمحة عامة

الإجراءات المخزنة في SQL | لمحة عامة

في هذه المدونة ، سنناقش الإجراءات المخزنة في SQL والتي يمكنك استخدامها لحفظ مجموعة من التعليمات البرمجية واستخدامها بشكل متكرر كلما احتجت إليها. الإجراءات المخزنة مشابهة لوجهات النظر. ومع ذلك ، يمكنك إجراء عمليات الجدول المشتركة مثل DROP و TRUNCATE و DELETE وما إلى ذلك باستخدام الإجراءات المخزنة التي لا يمكنك تنفيذها باستخدام طرق العرض.

يتم أيضًا تجميع الإجراءات المخزنة مسبقًا بحيث تعمل بشكل أسرع من طرق العرض. كما أنه يقلل من كمية البيانات المرسلة إلى خادم قاعدة البيانات.

جدول المحتويات

بناء الجملة للإجراءات المخزنة في SQL: بدون معلمات

لإنشاء إجراء مخزن بدون معلمات ، يجب أن تبدأ بالوظيفة CREATE . ثم أضف وظيفة PROC ، واكتب اسم الإجراء بعد ذلك مباشرةً ، وأضف وظيفة AS .

الإجراءات المخزنة في SQL |  لمحة عامة

يشبه إنشاء إجراء مخزن في ومع ذلك ، فإن الاختلاف في عملية الحصول على البيانات.

على سبيل المثال ، إذا أردنا الحصول على بيانات من طريقة عرض ، فإننا نستخدم " SELECT * FROM view_name ." من ناحية أخرى ، بالنسبة للإجراءات المخزنة ، نستخدم EXEC الذي يعني "تنفيذ" ، ثم نكتب اسم الإجراء المخزن بعده.

الإجراءات المخزنة في SQL |  لمحة عامة

بمجرد تنفيذ إجراء مخزن ، فإنه سيُظهر أيضًا المعلومات بناءً على التعليمات أو الأوامر التي أضفتها.

بناء الجملة للإجراءات المخزنة في SQL: مع المعلمات

دعنا ننتقل إلى . تشبه العملية المثال السابق الذي عرضته. الاختلاف الوحيد هو أنك تحتاج إلى تضمين المعلمات قبل وظيفة AS وكذلك نوع البيانات مباشرة بعد ذلك.

الإجراءات المخزنة في SQL |  لمحة عامة

يمكنك أيضًا استخدام المعلمة التي أعلنتها في إنشاء الإجراء المخزن في أوامرك. هذا لتوفير الوقت في إدخال قيم متعددة. على سبيل المثال ، بدلاً من كتابة customerID1 و customerID2 وما إلى ذلك يدويًا ، استخدمنا custid أو المعلمة لتجنب وجود مجموعة طويلة من التعليمات البرمجية.

الإجراءات المخزنة في SQL |  لمحة عامة

يرجى ملاحظة أنه عند استخدام أو تضمين معلمة ، من المهم استخدام الرمز @ . يمكنك أيضًا تضمين أي عدد تريده من المعلمات ، وليس واحدة فقط. هذه هي الطريقة التي ننفذ بها الإجراءات المخزنة مع المعلمات.

الإجراءات المخزنة في SQL |  لمحة عامة

كما تلاحظ ، استخدمنا أيضًا المعلمة بقيمة تساوي 1 في تنفيذ الإجراء المخزن. سيؤدي هذا فقط إلى جلب المعلومات الخاصة بـ custid1 .

نموذج سيناريو للإجراءات المخزنة في SSMS

دعونا نحصل على المزيد من الأمثلة على الإجراءات المخزنة في SQL. في الحالة الأولى ، سأقوم بإنشاء نموذج إجراء مخزن باستخدام الأمر المميز أدناه.

الإجراءات المخزنة في SQL |  لمحة عامة

من أجل اصطلاح التسمية في إنشاء إجراء مخزن ، نستخدم عادةً "usp" أو "sp" للإشارة إلى أن هذا إجراء مخزن. إذا كنت تتساءل عما تعنيه كلمة "usp" ، فهي تعني ببساطة الإجراء المخزن الذي يحدده المستخدم. 

بعد ذلك ، سنقوم بكتابة استعلامات للإجراء المخزن لمعالجته عند تنفيذه.

الإجراءات المخزنة في SQL |  لمحة عامة

ستزيل الاستعلامات في المثال السابق الجدول المسمى dbo.stageOrders ببساطة . ثم يقوم بإعادة إنشاء dbo.stageOrders بالبيانات من جدول Sales.SalesOrderHeader

لنقم بإنشاء هذا الإجراء المخزن عن طريق تمييز الكود التالي والنقر على زر التنفيذ .

الإجراءات المخزنة في SQL |  لمحة عامة

بعد ذلك ، سترى رسالة مثل هذه.

الإجراءات المخزنة في SQL |  لمحة عامة

ثم سنقوم الآن بتنفيذ الإجراء المخزن عن طريق تشغيل EXEC usp_TEST .

الإجراءات المخزنة في SQL |  لمحة عامة

عند تنفيذ إجراء usp_TEST المخزن ، يجب أن يكون لدى dbo.stageOrders الآن البيانات من Sales.SalesOrderHeader . دعنا نتحقق من محتوى dbo.stageOrders عن طريق تشغيل الأمر أدناه.

الإجراءات المخزنة في SQL |  لمحة عامة

نتيجة لذلك ، هذه هي البيانات التي أنشأناها في dbo.stageOrders بناءً على الأوامر التي أضفناها إلى الإجراء المخزن لدينا.

الإجراءات المخزنة في SQL |  لمحة عامة

سيناريو العينة الثانية

دعنا ننتقل إلى مثال آخر. لا أريد هذه المرة إسقاط جدول dbo.stageOrders وإعادة إنشاء نفس الجدول بالبيانات الواردة من جدول Sales.SalesOrderHeader .

بدلاً من ذلك ، أريد فقط عرض البيانات من جدول Sales.SalesOrderHeader كلما قمت بتنفيذ الإجراء المخزن " usp_TEST " .

للقيام بذلك ، أحتاج إلى إجراء تغييرات على الإجراء المخزن الذي تم إنشاؤه مؤخرًا باستخدام عبارة ALTER .

الإجراءات المخزنة في SQL |  لمحة عامة

في هذا المثال ، استخدمنا عبارة ALTER التي تُستخدم لتعديل الإجراء المخزن لدينا. يمكنك أيضًا تطبيق هذا على طرق العرض والجداول. بمجرد تشغيل الكود في لقطة الشاشة أعلاه ، يجب أن يغير الاستعلامات لتتم معالجتها بواسطة الإجراء المخزن لدينا.

هذه المرة لن يعيد إنشاء أي جدول كما فعلنا سابقًا. إذا قمنا بتنفيذ " usp_TEST " ، فسيتم جلب البيانات من جدول Sales.SalesOrderHeader .

الإجراءات المخزنة في SQL |  لمحة عامة

الإجراءات المخزنة في SQL |  لمحة عامة

سيناريو العينة الثالثة

لنقم بمثال آخر. هذه المرة سنعيد استخدام جدول dbo.stageOrders الذي كان لدينا في مثالنا الأول لإنشاء إجراء مخزن في SSMS . سنبدأ بهذا المثال بتحديد جدول dbo.stageOrders. 

الإجراءات المخزنة في SQL |  لمحة عامة

يجب أن تكون النتائج عند اختيار جميع البيانات من dbo.stageOrders هكذا.

الإجراءات المخزنة في SQL |  لمحة عامة

الآن لنفرغ جدول dbo.stageOrders بتنفيذ usp_TEST . يمكننا القيام بذلك عن طريق إضافة الأمر التالي.

الإجراءات المخزنة في SQL |  لمحة عامة

بعد إضافة أمر TRUNCATE TABLE ، نحتاج إلى تحديث usp_TEST .

الإجراءات المخزنة في SQL |  لمحة عامة

بعد ذلك ، يجب عرض رسالة تفيد بأنه تم إكمال الأوامر بنجاح . ثم سنقوم بتنفيذ usp_TEST مرة أخرى.

الإجراءات المخزنة في SQL |  لمحة عامة

عند تنفيذ usp_TEST ، سيعرض جميع السجلات من Sales.SalesOrderHeader ويفرغ أيضًا جدول dbo.stageOrders

الإجراءات المخزنة في SQL |  لمحة عامة

للتحقق مما إذا كان جدول dbo.stageOrders فارغًا ، نحتاج إلى تحديده باستخدام الأمر التالي وتنفيذه.

الإجراءات المخزنة في SQL |  لمحة عامة

عند تشغيل الكود أعلاه ، يمكننا رؤية جدول dbo.stageOrders فارغ الآن. هذا بسبب أمر TRUNCATE TABLE الذي استخدمناه لتحديث usp_TEST .

الإجراءات المخزنة في SQL |  لمحة عامة

موقع الإجراءات المخزنة المحفوظة في SQL

إذا كنت تريد معرفة مكان حفظ الإجراء المخزن في SQL ، فانتقل إلى لوحة Object Explorer على الجانب الأيسر وانقر فوق الرمز " + " قبل قاعدة البيانات التي تعمل عليها.

الإجراءات المخزنة في SQL |  لمحة عامة

ثم انقر بزر الماوس الأيمن فوق إمكانية البرمجة وحدد تحديث .

الإجراءات المخزنة في SQL |  لمحة عامة

الإجراءات المخزنة في SQL |  لمحة عامة

قم بتوسيع مجلد أو مجموعة Programmability من خلال النقر على أيقونة " + ". ثم قم بتوسيع مجموعة الإجراءات المخزنة بالقيام بنفس الخطوة. داخل مجموعة Stored Procedures (الإجراءات المخزنة) ، يجب أن ترى dbo.usp_TEST .

الإجراءات المخزنة في SQL |  لمحة عامة

الإجراءات المخزنة في SQL |  لمحة عامة

إذا كنت ترغب في التحقق من الأوامر أو الاستعلامات التي يؤديها إجراء مخزن معين في SQL ، فيمكنك النقر بزر الماوس الأيمن فوق إجراء مخزن واتباع الخطوات الواردة في لقطة الشاشة أدناه.

الإجراءات المخزنة في SQL |  لمحة عامة

بعد ذلك ، سيفتح الإجراء المخزن في علامة تبويب مختلفة حيث يمكنك رؤية الأوامر المتوفرة فيه. هكذا يبدو dbo.usp_TEST عند فتحه.

الإجراءات المخزنة في SQL |  لمحة عامة

كما ترى ، هناك بعض الأوامر الافتراضية قبل عبارة CREATE . يمكنك ببساطة حذف ذلك إذا كنت تريد ذلك. 

الإجراءات المخزنة في SQL |  لمحة عامة

أنت الآن تعرف كيفية التحقق من الأوامر التي يؤديها إجراء مخزن في SQL .

إنشاء إجراء مخزن في SQL مع المعلمات

بعد ذلك ، سنقوم بإنشاء إجراء مخزن باستخدام المعلمات. على سبيل المثال ، سنستخدم الكود التالي لإنشاء إجراء مخزن جديد.

الإجراءات المخزنة في SQL |  لمحة عامة

في مثال الكود ، استخدمت نفس العملية لإنشاء إجراء مخزن باسم usp_GetCustomer . ثم أضفت معاملًا وهو CustomerID بنوع إدخال من INT .

لاحظ أنه بمجرد إضافة معلمة في إنشاء إجراء مخزن ، يجب عليك دائمًا توفير معلمة عندما تنوي تنفيذ أمر ما.

دعنا نرى ما سيحدث إذا قمنا بتنفيذ usp_GetCustomer دون توفير معامل.

الإجراءات المخزنة في SQL |  لمحة عامة

عند تنفيذ usp_GetCustomer بدون معامل ، ظهرت رسالة خطأ. هذا ما سيبدو عليه الأمر إذا قمنا بتنفيذ usp_GetCustomer بمعامل.

الإجراءات المخزنة في SQL |  لمحة عامة

مع توفير المعلمة ، يمكننا الحصول على نتيجة مناسبة في تنفيذ الإجراء المخزن لدينا .

تكوين إجراء مخزن بقيمة افتراضية

إذا كنت تريد تجنب تلقي رسالة خطأ أثناء تنفيذ إجراء مخزن باستخدام معلمة ، فيمكنك تعيين قيمة افتراضية تعمل كمعامل افتراضي.

على سبيل المثال ، سنقوم بإنشاء إجراء مخزن باسم usp_GetOrdersByYear .

ثم سأضيف معلمة OrderYear بنوع الإدخال " INT " والقيمة الافتراضية التي تساوي 2011 .

الإجراءات المخزنة في SQL |  لمحة عامة

إذا قمنا بتنفيذ usp_GetOrdersByYear بدون توفير معلمة ، فسيتم عرض السجلات مع عام 2011 .

الإجراءات المخزنة في SQL |  لمحة عامة

الإجراءات المخزنة في SQL |  لمحة عامة

من ناحية أخرى ، إذا قمنا بتنفيذ usp_GetOrdersByYear مع 2014 كمعامل معين ، فيجب أن تعرض السجلات مع عام 2014 .

الإجراءات المخزنة في SQL |  لمحة عامة

الإجراءات المخزنة في SQL |  لمحة عامة

هذه هي الطريقة التي تستخدم بها الإجراءات المخزنة في مهام إدارة البيانات اليومية.

عبارة HAVING في وظائف SQL التجميعية
وظيفة ISNULL SQL في عبارات الحالة
استخراج بيانات SQL باستخدام OFFSET و FETCH

خاتمة

مع أخذ كل شيء في الاعتبار ، تعلمت ما هو الإجراء المخزن في SQL والغرض منه. لقد ناقشنا أيضًا عبارة ALTER التي تُستخدم لإجراء تغييرات أو تحديثات في إجراء مخزن حالي.

بالإضافة إلى ذلك ، تعلمت أن هناك طرقًا مختلفة لإنشاء الإجراءات المخزنة في SQL وتعلمت كيفية تجنب تلقي الأخطاء عند تنفيذ إجراء مخزن من خلال توفير قيمة افتراضية.

الأهم من ذلك ، أنك تعلمت استخدام الإجراءات المخزنة لتخزين مجموعات من الأوامر لتجنب تشغيل مجموعات طويلة من التعليمات البرمجية بشكل متكرر. كتذكير أخير ، لا تنس استخدام الرمز " @ " عند تقديم معلمة.

أتمنى لك كل خير،

حافظ


ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

كيفية حفظ وتحميل ملف RDS في R.

كيفية حفظ وتحميل ملف RDS في R.

ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.

مقدمة لتصفية السياق في LuckyTemplates

مقدمة لتصفية السياق في LuckyTemplates

في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX ​​في توفير النتائج.

إعداد تقارير الأعمال باستخدام LuckyTemplates

إعداد تقارير الأعمال باستخدام LuckyTemplates

إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته