Stored Procedure

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Stored Procedure as PDF for free.

More details

  • Words: 682
  • Pages: 6
‫وظيفة الـ ‪ procedure‬اللى الموجود فى لغات البرمجة ‪ -‬أليس اختصار عملية مكررة فبدلً من كتابتها مرات‬ ‫ومرات نقوم باستدعاءها فقط باسمها‬ ‫كذلك الـ ‪ procedure‬فى ‪SQL‬‬ ‫وفى فوائد اخري أهمها ‪ :‬أنت شغال فى فريق عمل بلغة مختلفة ومشروعكم فى الخر بيتجمع‬ ‫لما يأتى دور صيانة للبرنامج هتكون الـ ‪ procedure‬اللى خى الجراءات المخزنة بلغة موحدة يعنى الكل‬ ‫يعرف يتعامل معاها مباشرة‬ ‫ونقطة هامة أخري ‪ :‬سرعة تنفيذ الجراء المخزن لن لما تنفذ المر عن طريقه ‪ -‬محرك قواعد البيانات أو‬ ‫السيرفر لن يكون محتاج يعمل ‪ Parssing‬لن الجراء مخزن عنده أصلً ومتأكد منه من قبل‬ ‫هناك نوعين من الجراءات المخزنة‬ ‫‪ : Simple Procedure‬بيكون موجود بشكل تلقائي عند اعداد الـ ‪SQL‬‬ ‫‪ : Parameter Procedure‬هذا الذى سوف ننشأه وتابع لك وليس تابع للنظام‬ ‫كمثال على النوع الول ‪:‬‬ ‫الجراء ‪sp_help‬‬ ‫افتح ‪SQL Query Analyzer‬‬ ‫اكتب الجراء‬ ‫‪sp_help Table_Name‬‬ ‫‪ = Table_Name‬اسم أى جدول عندك فى القاعدة اللى امامك‬ ‫ستجد أن الجراء يقوم بعرض بنية الجدول من حيث الحقول وخصائصها‬ ‫طبعاً الجراء ‪ sp_help‬اجراء نظامي لم نحتاج لكتابة المر ‪ Create‬لنشاءه‬ ‫========================================‬ ‫نأتي للنوع الثاني ‪ Parameter Procedure‬بعد أن تعرفنا على النوع الول بصورة سريعة‬ ‫كيف ننشأه‬ ‫صيغته هكذا‬ ‫كود‪:‬‬

‫]‪CREATE PROCEDURE [OWNER].[PROCEDURE NAME‬‬ ‫‪AS‬‬

‫مثال‬ ‫افتح ‪SQL Query Analyzer‬‬ ‫اكتب الكود‬ ‫كود‪:‬‬

‫‪create procedure p1 @f int as‬‬ ‫‪select * from Table_Name where Column_Name = @f‬‬ ‫‪ = Table_Name‬اسم أى جدول عندك فى القاعدة‬ ‫‪ = Column_Name‬اسم حقل فى هذا الجدول المحدد‬ ‫@‪ : f‬براميتر أى وسيطة سيقوم المستخدم بارسال رقم لها‬ ‫نحن الن أنشأنا الجراء المخزن‬ ‫كيف سينفذ‬ ‫عن طريق ‪ SQL Query Analyzer‬اكتب هذا المر‬

‫‪execute p1 10‬‬ ‫حيث ‪ execute‬أمر التنفيذ‬ ‫‪ p1‬اسم الجراء المخزن الذى أنشأناه من دقائق‬ ‫القيمة ‪ 10‬قيمة من عندى التى سترسلها للبراميتر @‪f‬‬ ‫لتنسى وضع اسم جدول من عندك وحقل من عندك يكون موجود فى الجدول المطلوب‬ ‫اذن سيكون الكود عبارة عن جملة ‪Select‬‬ ‫كود‪:‬‬

‫‪select * from Table_Name where Column_Name = 10‬‬

‫‪Drop Procedure‬‬ ‫يستخدم هذا المر لحذف اجراء معين‬ ‫كمثال لحذف الجراء الذى أنشأناه فى الشرح الن‬ ‫‪drop procedure p1‬‬

‫القوادح ‪Triggers‬‬ ‫نظرًا لهمية القوادح سنتكلم عن كيفية استخدامها ببساطة دون تعقيد‬ ‫أو ًل ما هي‬ ‫‪Triggers‬‬ ‫القوادح هى عبارة عن مجموعة من الوامر يتم تنفيذها كلما صدر المر المسبب للقادح‬ ‫وتستخدم القوادح أيض ًا كشروط اضافية عندما ل تستطيع تكوين ‪ CONSTRAINT‬على جدول معين فتكون‬ ‫هى البديل لذلك والقوادح مثلها مثل الجراءات المخزنة ‪ SP‬من حيث الديناميكية ولكن لها تخصص اكبر‬ ‫والمقصود بها الوامر‬ ‫متى تنفذ القوادح‬ ‫تنفيذ عند تنفيذ المر المرتبطة به وهى ثلث حالت‬ ‫‪: Delete‬‬ ‫حيث تختص هذه الجمله بالحذف‪.‬‬ ‫‪: Update‬‬ ‫حيث تختص هذه الجمله بالتعديل‪.‬‬ ‫‪: Insert‬‬ ‫حيث تختص هذه الجمله بالضافة‬ ‫صيغة انشاء قادح ‪Trigger‬‬

‫]‪CREATE TRIGGER [TRIGGER NAME] ON [dbo].[Table Name‬‬ ‫‪FOR INSERT, UPDATE, DELETE‬‬ ‫‪as‬‬ ‫‪= TRIGGER NAME‬‬ ‫اسم القادح المراد انشاءه‬ ‫‪= Table Name‬‬

‫اسم الجدول المطبق عليه القادح‬

‫مثال‬ ‫على تطبيق قادح على جدول عندما تعدل حقل معين ل يعدل‬ ‫عندنا جدول اسمه‬ ‫‪Class_Quant_Primary‬‬ ‫به حقل رقمى اسمه ‪Quant_UA‬‬ ‫كتبت هذه القادح‬ ‫كود‪:‬‬

‫‪CREATE TRIGGER [update_quant_prim] ON‬‬ ‫‪[dbo].[Class_Quant_Primary] for update as‬‬ ‫)‪if update (Quant_UA‬‬ ‫‪begin‬‬ ‫)'!!! ‪print ('hello baby - u cant update‬‬ ‫‪rollback transaction‬‬

‫شرح القادح اعطيت اسم للقادح‬ ‫كتبت اسم الجدول المراد التنفيذ عليه‬ ‫اخبرته انه عند القيام بتعديل على الحقل ‪Quant_UA‬‬ ‫يقوم باظهار رسالة تخبر المستخدم بعدم امكانية التعديل‬ ‫وكتبت سطر التراجع عن التعديل‬

‫هنقوم بتكوين قادح الن ليلغى الضافة‬ ‫على نفس الجدول السابق‬ ‫نكتب هذا القادح‬ ‫كود‪:‬‬ ‫]‪CREATE TRIGGER [insert_prim] ON [dbo].[Class_Quant_Primary‬‬ ‫‪for insert‬‬ ‫‪as‬‬ ‫‪begin‬‬ ‫)'!!!‪print ('hello baby - u cant insert‬‬ ‫‪rollback transaction‬‬ ‫‪end‬‬

‫كل ما فى المر أننا غيرنا المر القادح من ‪ Update‬إلى ‪Insert‬‬ ‫وكذلك المر مع الحذف نغير المر فقط‬ ‫هنقوم بتكوين قادح الن ليلغى الضافة‬ ‫على نفس الجدول السابق‬ ‫نكتب هذا القادح‬ ‫]‪CREATE TRIGGER [Delete_prim] ON [dbo].[Class_Quant_Primary‬‬ ‫‪for Delete as‬‬ ‫‪begin‬‬ ‫)'!!! ‪print ('hello baby - u cant Delete‬‬ ‫‪rollback transaction‬‬ ‫‪end‬‬

‫كل ما فى المر أننا غيرنا المر القادح من ‪ Insert‬إلى ‪Delete‬‬ ‫طبع ًا لزم نغير سم القادح باسم مختلف مع كل قادح ننشأه‬

‫ لحذف القادح‬Drop ‫يمكن استخدام المر‬ ‫ويمكن توقف عمله عن طريق المر‬ :‫كود‬

ALTER TABLE Table_Name DISABLE TRIGGER TRIGGER_Name

Table_Name ‫اسم الجدول‬ TRIGGER_Name ‫اسم القادح‬ ‫لتمكينه‬ :‫كود‬

ALTER TABLE Table_Name ENABLE TRIGGER TRIGGER_Name

Related Documents

Stored Procedure
June 2020 14
Stored Procedure
May 2020 15
Stored Procedure
November 2019 32
Stored Procedure
June 2020 15
Stored Procedure
November 2019 24
Stored Procedure
June 2020 16