تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كل شي عن stored prosedure
#1
كاتب الموضوع : حماده عماره

بسم الله الرحمن الرحيم

اولا ما هو stored proceduers

هو احد مكونات قاعدة البيانات والتي تتكون من(table - view - trigeer- stored proceduers-index-constraint-cursor ...)

ببساطه هو sub وممكن نقول function كمان بتاعت sql server والتي تعمل بلغة t-sql يعني لو عاوز برنامج فرعي داخل السيرفر بيعمل وظيفه معينه
عند استدعائه يبقا هو stored proceduer طبعا الكلام مبهم ومش واضح يبقا في الاول نوضح بمثال سريع

اول شي الامثله عشان تنفذها انت محتاج sql server 2000\2005 اي واحد يمشي ويكون ليك معرفه قبل كده باوامر سكوال العاديه يعني تكون مجرب او قارئ قبل كده مش واحد بادء من الصفر بصراحه لانه برده مش ها يفهمه لان كل شي وله مرحله في الفهم والتطبيق

المهم هانفتح query analizer
ونكتب الكود ده


كود :
use northwind

create proc proc1 as

select * from cust
ثم قم بالتنفيذ هكذا نكون صنعنا اول proc لينا ومهمته هي يعمل استعلام ويرجع الناتج الشرح للكود

كلمة proc هي اختصار stored proseduer
كلمة proc1 هي اسم البروسيدير الذي انشاناه
كلمة as ياتي بعدها الاوامر المراد تنفيذها وهي كما تريد وهنا استخدمنا احد اوامر الاستعلامات select وممكن كتابة اي عدد من الاوامر

طبعا انا عارف ان الشرح غير واضح بس انا بحاول اوضح علي قد ماقدر اسف ان كان فيه لبس عند احد المهم نكمل

طبعا في المثال الي عده احنا الب انشائنا البروسيدير بس البروسيدر ده نوعان وهما (system stored procduer -- user stored proceduer)

وفي حالتنا طبعا نوعه user stored proceduer يعني المستخدم الي بناه


طيب احنا انشائنا بروسيدير ازاي استدعيه ممكن تستدعيه بالشكل التالي لينفذ لك الاوامر الي فيه وهي
execute proc1
اكتب الامر السابق في الكويري وهو هينفذ الاوامر الي فيه عموما بالنسبه للاستدعاء يجب ان تكون واقف في داخل القاعده الي فيها البروسيدير عشان تقدر تستدعيه

اما بالنسبه للنوع التاني المبني جاهز من قبل السيرفير تقدر تنادي عليه من اي قاعده وينفذ الاوامر بتاعته الي كلها مكتوبه طبعا ب t-sql و sql

حاجه كمان احنا ليه اصلا بنصنعه مانا ممكن اكتب الاوامر وخلاص انا اقولك ايه اهميته وهو اولا توفير طاقة الضغط علي الشبكه من ناحيه ومن ناحيه تانيه توفير الضغط علي السيرفير وتنفيذه اسرع بكتير من جمل sql العاديه لان عند استدعائه اول مره يقوم السيرفر بتجهيزه (مش عارف اعبر) المهم بيكون جاهز بعد كده وبمجرد استدعائه بينفذ الاوامر بسرعه ومش محتاج تجهيز تاني وده عكس جمل sql الي في كل مره بحتاج يجهزها الاول قبل تنفيذها
اسف الكلمات مش مساعداني عشان اعبر بكلمات صح

نكمل

في الجزء القاده هانتعلم الوضع المتقدم شويه واستخدام المتغيرات paramters


}}}
تم الشكر بواسطة:
#2
الجزء الثاني من stored proceduer والتعامل مع paramters

***ملحوظه في اخر الدوره سوف اشرح ازاي نا استعمل stored procduer في داخل اللغه vb.
net2005*****


احنا شوفنا في الجزء الاول ازاي اعمل بروسيدير وازاي استدعيه دلوقتي انا هاعمل شي اخر وهو انشر امثله توضح اهميته ولماذا يفضل استخدامه

المثال الاول مثلا وانا في الكويري لو عاوز اعمل جملة ادراج في احد الجداول وياسلام بقا لو ان المفروض ان المفروض هاعمل ادراج في اكتر من جدول مثلا في جدول الفواتير هاعمل فيه ادخال فاتوره جديده وفي نفس الوقت هاعمل تعديل في جدول المخازن يعني هاعمل حوالي 3 اسطر من الاوامر اولهم جملة select و تاني سطر تقليل كمية المخزون في جدول السلع في حقل الكميه المتوفره من السلعه التي تم بيعها وده بجملة update وفي الاخر ممكن نعمل جملة select لنعرض الناتج
طيب انا ممكن اعمل كل ده في سطر واحد وصغير ازاي انا هاشرح ده

ملحوظه مهمه بالنسبه للمبتدائين هيكون صعب عليهم الموضوع ده دلوقتي بس الي عاوز يكمل براحته

المهم هنفترض وجود الجدول ده وهو cust وهو بيعبر عن الموظفين وفيه الحقول دي (id -name-phone )
وده جدول تجريبي لتوضيح الفكره المهم انا هافترض ان الجدول ده عندك في القاعده
هانفتح الكويري وتكتب كود الانشاء ده

كود :
create proc proc2 ( @id int , @name char(40) , @phone char(20)) as

insert into cust values ( @id , @name , @phone )

select * from cust

استخدم امر التشغل لينهي هذه العمليه

وشرحه هو اول سطر زي ماهو واضح احنا بدانا اوامر انشاء البروسيدير وبين القوسين عرفنا عدد من المتغيرات وهي @id ومعناها متغير نوعه integer
نلاحظ عند التصريح عن متغير يجب دائما ان يسبقه علامة @ وهو يدل ان هذا متغير

@name متغير نوعه char وهكذا حقل التليفون

طيب واحد هايسئل احنا وضعناهم بين قوسين ليه.... بمنتهي البساطه المتغيرات دي لازم تدخلها عند الاستدعاء وهنشوفها بعد شويه المهم في البروسيدير هاياخد المتغيرات دي
ويحطها في الجمل في مكانها نشوف كده

في جملة الادراج نلاحظ اننا في القيم اننا لم نضعها وانما وضعنا بدلا منها المتغيرات التي ادخلناها مع استدعاء البروسيدير نجرب للتوضيح الان نستدعي البروسيدير

نلاحظ بعد انشاء البروسيدير لو طلبت التنفيذ هيظهر خطا بسسب انه موجود قبل كده بعد ما تنشاه امسح الكود بتاعه من الكويري واكتب

كود :
exec proc2 '1','hamada','0163968865'
ولاحظ النتيجه نلاحظ انه تم ادراج السجل الجديد وتم استدعاء امر select ليعرض النتائج طبعا كان ممكن نعمل اي عدد من الاوامر هنا
ملاحظه كلمة exec اختصار امر execute الذي تحدثنا عنه في المره السابقه
والاسلوب ده اسمه كتابة اسكربت sql


طيب دي نهاية الموضوع .....لا .. ياعم ا صبر افهم دول كويس والجاي يبقا اسهل

مثلا انا خلاص ذاكرت الي عده وفهمته انا عاوز اكمل...... الموضوع بسيط دلوقتي انا هدخل جمل if و جمل case with when

نلتقي في الدرس القادم
}}}
تم الشكر بواسطة: nagoma , nagoma


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  SQL server tools to build stored procedures Akif 0 2,390 16-05-18, 01:25 PM
آخر رد: Akif
  معلومة --- Stored Procedure RaggiTech 3 4,230 21-10-12, 05:07 PM
آخر رد: RaggiTech
  تشفير Stored procedure RaggiTech 0 2,153 15-10-12, 10:16 AM
آخر رد: RaggiTech
  Stored procedures honeesh 3 2,604 06-10-12, 03:16 AM
آخر رد: honeesh

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم