ما هو الإجراء المخزن؟
تعريف:
اكتب المهام شائعة الاستخدام أو المعقدة جدًا مسبقًا باستخدام عبارات SQL وقم بتخزينها باسم محدد، ثم عندما تريد أن تطلب من قاعدة البيانات توفير الخدمات بنفس الوظائف مثل الإجراءات المخزنة المحددة في المستقبل، ما عليك سوى استدعاء التنفيذ. أوامر الإكمال التلقائي.
في هذه المرحلة، قد يتساءل شخص ما: إذن الإجراء المخزن هو مجرد مجموعة من عبارات SQL؟
لماذا تريد مايكروسوفت إضافة هذه التقنية؟
إذن ما الفرق بين الإجراءات المخزنة وعبارات SQL العادية؟
مزايا الإجراءات المخزنة:
1. يتم تجميع الإجراءات المخزنة فقط عند إنشائها، وليست هناك حاجة لإعادة الترجمة في كل مرة يتم فيها تنفيذ الإجراء المخزن في المستقبل. بشكل عام، يتم تجميع عبارات SQL مرة واحدة في كل مرة يتم تنفيذها، لذا فإن استخدام الإجراءات المخزنة يمكن أن يحسن التنفيذ سرعة قاعدة البيانات.
2. عند إجراء عمليات معقدة على قاعدة البيانات (مثل التحديث والإدراج والاستعلام والحذف على جداول متعددة)، يمكن تغليف هذه العملية المعقدة في إجراء مخزن واستخدامها جنبًا إلى جنب مع معالجة المعاملات التي توفرها قاعدة البيانات.
3. يمكن إعادة استخدام الإجراءات المخزنة، مما يمكن أن يقلل من عبء العمل على مطوري قواعد البيانات
4. إجراءات أمنية مشددة، يمكنك تعيين أن مستخدمًا معينًا فقط له الحق في استخدام العملية المخزنة المحددة
أنواع الإجراءات المخزنة:
1. الإجراءات المخزنة في النظام: بدءًا من sp_، المستخدمة لإعداد النظام والحصول على المعلومات وأعمال الإدارة ذات الصلة، مثل sp_help، والتي تستخدم للحصول على المعلومات ذات الصلة حول الكائن المحدد.
2. يبدأ الإجراء المخزن الموسع بـ XP_ ويستخدم لاستدعاء الوظائف التي يوفرها نظام التشغيل.
exec master..xp_cmdshell "ping 10.8.16.1"
3. الإجراءات المخزنة التي يحددها المستخدم، وهذا ما نشير إليه بالإجراءات المخزنة
التنسيقات الشائعة
إنشاء إجراء الإجراء_اسم
[@parameter data_type] [الإخراج]
[مع] {إعادة الترجمة|التشفير}
مثل
ql_statement
يشرح:
الإخراج: يشير إلى أنه يمكن إرجاع هذه المعلمة
مع {إعادة الترجمة|التشفير}
إعادة الترجمة: يعني أنه سيتم إعادة ترجمة هذا الإجراء المخزن في كل مرة يتم تنفيذها.
التشفير: سيتم تشفير محتوى الإجراء المخزن الذي تم إنشاؤه
يحب:
محتويات كتاب الجدول هي كما يلي
سعر عنوان الكتاب المرقم
001 مقدمة للغة C 30 دولارًا
002 تطوير تقرير PowerBuilder بسعر 52 دولارًا
مثال 1: إجراء مخزن للاستعلام عن محتويات كتاب الجدول
إنشاء بروك query_book
مثل
اختر * من الكتاب
يذهب
exec query_book
مثال 2: أضف سجلاً إلى كتاب الجدول واستفسر عن المبلغ الإجمالي لجميع الكتب في هذا الجدول
إنشاء بروك Insert_book
@param1 شار(10)،@param2 varchar(20)،@param3 المال،@param4 إخراج المال
مع التشفير ---------- التشفير
مثل
أدخل الكتاب (الرقم، عنوان الكتاب، السعر) القيم (@param1,@param2,@param3)
حدد @param4=sum(price) من الكتاب
يذهب
مثال التنفيذ:
أعلن @total_price المال
exec Insert_book '003'،'دليل تطوير التحكم في دلفي'،$100،@total_price
اطبع "المبلغ الإجمالي هو"+تحويل (varchar,@total_price)
يذهب
ثلاثة أنواع من قيم الإرجاع من الإجراءات المخزنة:
1. قم بإرجاع العدد الصحيح باستخدام Return
2. إرجاع المعلمات بتنسيق الإخراج
3. مجموعة السجلات
الفرق بين القيم التي تم إرجاعها:
يمكن استلام كل من الإخراج والإرجاع كمتغيرات في البرنامج الدفعي، ويتم إرجاع مجموعة السجلات مرة أخرى إلى العميل الذي ينفذ الدفعة.
مثال 3: يوجد جدولان، المنتج والطلب، بمحتويات الجدول التالية:
منتج
رقم المنتج اسم المنتج كمية طلب العميل
001 قلم 30
002 فرشاة 50
003 قلم رصاص 100
طلب
رقم المنتج اسم العميل إيداع العميل
001 منطقة نانشان 30 دولارًا
002 منطقة لوهو 50 دولارًا
003 منطقة باوان$4
الرجاء استخدام الرقم كشرط للاتصال لربط الجدولين في جدول مؤقت. يحتوي هذا الجدول على اسم المنتج فقط.
المبلغ الإجمالي = الإيداع * كمية الطلب، يتم وضع الجدول المؤقت في عملية التخزين
الرمز هو كما يلي:
إنشاء بروك temp_sale
مثل
حدد أ.رقم المنتج،أ.اسم المنتج،ب.اسم العميل،ب.إيداع العميل،أ.كمية طلب العميل* ب.إيداع العميل كمبلغ إجمالي
إلى #إغراء من المنتج، توصيل داخلي بالطلب ب على أ.رقم المنتج=ب.رقم المنتج
إذا @@خطأ=0
طباعة "جيد"
آخر
طباعة "فشل"