Stored Proceure_Trigger

Similar documents
گروه ا موزشي فرزان نمونه ايي از كتاب الكترونيكي ا موزش Forefront TMG

Microsoft Word - paziresh.doc

Microsoft Word - cash.doc

Microsoft Word - servise sarpaei .doc

Microsoft PowerPoint خط تاثير [Compatibility Mode]

Microsoft Word - Help_ docx

Microsoft Word - adv_ch06.doc

یک روش کنترلی جدید برای اتصال مبدل های فتوولتائیک به شبکه سراسری

Microsoft Word - ins.doc

0259.doc

راهنماي استفاده از تي ودوليت هاي الكترونيكي سريDT200 ساخت كمپانيFOIF مدير عامل : مهندس مهدي برومند ترجمه و تنظيم : مهندس سودابه عارفي راد آدرس : تهران

Microsoft PowerPoint - paper_elm_2410.ppt [Compatibility Mode]

n n معین نامنفی است زیرا: H H x A Ax Ax ,, 2, n نشان دهیم و قرار دهیم H A A یک ماتریس 1 1, 2 2,, n n 1 2 n نامیده می شوند و اگر A Ax Ax 1


Microsoft Word - AT(2)(2)(2)(2).doc

DFT (Discrete Fourier Transform) ۱ تبدیل Z یا تبدیل فوریه x[n] که به صورت X(z) و ) jω X(e نمایش داده می شوند از لحاظ محاسباتی دو مشکل دارند: ۱ -محاسبه

Microsoft PowerPoint - principle1.pptx

Microsoft PowerPoint - chapter 5.pptx

Microsoft PowerPoint - همايش ايزوله

<4D F736F F D2032E4DCDEDCDCC7D4DCDCED20CFEDDCCCDCDCDCEDDCCADCC7E12E646F6378>

Microsoft Word - توزيع درامد درخانوارهاي شهري و روستایی

PG User Guide

abs.indd

Microsoft Word - طیف سنجی مادون قرمز.docx

مشروعیت مجلس خبرگان - مصطفی جعفر پیشه فرد

Microsoft Word - Maharathaye Sokhanrani Lithography.doc

Microsoft PowerPoint - Mrs Helali nasab.ppt

نوجوان ساله کيست ؟

final report 93 - Copy

Microsoft Word - 0

SQL Server SQL Server SQL Mail Windows NT

Report-Monit-F2

Slide 1

第4单元 创建数据类型和表

Slide 1

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

دستور زبان سوم راهنمائی

Microsoft Word - leca-geotecnic- 1 uses.doc

مجله پژوهشهاي به زراعي جلد 5 شماره 3 پاييز 1392 ج ه و ش ی زرا ی بررسي اثر ا رايش كاشت و تراكم بوته بر عملكرد گل گاوزبان ايراني (.L (Echium amoenum در

D _01 FARSI

Microsoft PowerPoint - Darvish_Slides[1].ppt

سال هاي دهه 90 را مي توان زمان تكامل و بهره وري چدن نشكن آستمپر دانست

Telegram Web زهره 9:47:01 PM جشنواره توليدمحتوای الکترونيکی مجتمع سوده 4/21/ apk.

1 الکترونیک عناصر از نظر هدایت الکتریکی به سه دسته تقسیم میشوند: فصل اول» نیمههادي و دیودها «1) هادي 2) نیمه هادي 3) عایق در ساختمان اتمی تمامی عناصر

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

一步一步教你搞网站同步镜像!|动易Cms

untitled

目錄

0.72 TELE-satellite World Download this report in other languages from the Internet: Arabic العربية

آیا آفازی درمان می شود؟

چسب وخمیرسیلیکون--رزین ها

南華大學數位論文

Oracle高级复制冲突解决机制的研究

untitled

<4D F736F F D20C9CFBAA3CAD0BCC6CBE3BBFAB5C8BCB6BFBCCAD4C8FDBCB6BFBCCAD4B4F3B8D95FBDA8D2E9B8E55F5F E646F63>

PowerPoint-Präsentation

ebook 96-16

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

目錄 C ontents Chapter MTA Chapter Chapter

مجله پژوهشهاي به زراعي جلد 5 شماره 3 پاييز 1392 ج ه و ش ی زرا ی تا ثير كاربرد كود دامي و نيتروژن بر عملكرد و اجزاي عملكرد گياه دارويي هميشه بهار (.L (

Microsoft Word - Heat ransfer_Outline_Section 7_New

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

فرازهایی از عقیده اهل سنت و جماعت

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

FA11649 نسخه اصالح شده ژوئن 2016 حق نسخهبرداری 2016.ASUSTeK Computer Inc تمامی حقوق محفوظ است. هیچ بخشی از این دفترچه راهنما )به غیر از مستنداتی که تو

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

حکومت علوی ، هدف ها و مسؤولیت ها / گروهی از نویسندگان ، تهیه فصلنامه حکومت اسلامی - قم : دبیرخانه مجلس خبرگان ، 1381

基于UML建模的管理管理信息系统项目案例导航——VB篇

Oracle 4

بررسی حضور ژن های aac( 6 ')Ie/aph( 2 ) ، aph( 3 ') - IIIa 1 ، ant( 4 ') - Ia 1 و تعیین مقاومت به متی سیلین در استافیلوکوک اپیدرمیدیس و استافیلوک

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

<4D F736F F D20E620DBE4F820DAE4CFE1EDC820C7E1C8E5C7C1>

untitled

123

untitled

<4D F736F F D20BBB7BEB3D0C5CFA2CFB5CDB3CAFDBEDDBFE2B7C3CECABDD3BFDAB9E6B7B6A3A8B1A8C5FAB8E5A3A E646F63>

RUN_PC連載_12_.doc

FA10302 ژوئن 2015 حق نسخهبرداری 2015.ASUSTeK Computer Inc تمامی حقوق محفوظ است. هیچ بخشی از این دفترچه راهنما )به غیر از مستنداتی که توسط خریدار و برا

منابع امتحانات نهايي فوق تخصصي سال ۱۳۹۲ اخلاق پزشكي براي همه رشته ها كتب: پزشك و ملاحظات اخلاقي جلد اول :مروري بر مباني اخلاق پزشكي / تاليف دكتر باقر


By: Hamid Montazerolghaem جوشکاري پیشرفته- حمید منتظرالقاي م 1 Project: 30% Mid Term: 35% Final Term: 35% Evaluation جوشکاري پیشرفته- حمید منتظرالقاي

回滚段探究

Quartz Chronographs Caliber G / 4 jewels Caliber / 22 jewels Caliber / 23 jewels 7 and E : According to model

ebook45-5

习题1

第 7 章扩展实践教学 SQL Server 数据库项目化教程 ( 主编 : 李蕾 北京师范大学出版社 ) 扩展实践 以随书赠送的素材库中的数据库实例 : 教务管理系统 为例, 要求 : 附加 教务管理系统 数据库至 SQL Server 2008 数据库服务器中 扩展实践 7-1 在教务管理系统数

فصلنامه ه ره آورد پژوهش نگهداري و تعمیرات شمارة 3 پاییز و زمستان 1391 صاحب امتیاز: انجمن نگهداري و تعمیرات ایران مدیر مسي ول: دکتر مهدي بهزاد سردبیر ع

untitled

ebook46-23

未命名

FA10343 ژوئن 2015 حق نسخهبرداری 2015.ASUSTeK Computer Inc تمامی حقوق محفوظ است. هیچ بخشی از این دفترچه راهنما )به غیر از مستنداتی که توسط خریدار و برا

untitled

Microsoft PowerPoint - Simulation Presentation in class1.ppt [Compatibility Mode]

منصب امامت جمعه در حکومت اسلامی / مصطفی جعفر پیشه فرد - قم : مرکز تحقیقات حکومت اسلامی ،1384

四川省普通高等学校

上海市教育考试院关于印发新修订的

untitled

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

PowerPoint Presentation

幻灯片 1

Transcription:

1 Stored Procedure & Trigger In SQL مهندس محمد زوار WebGard@Outlook.com

2 ھا Stored Procedure

3 SP چيست SP سر نام کلمات Stored Procedure و به معناي رويه هاي ذخيره شده ميباشد که اشيايي اجرا پذير در بانک اطلاعاتي SQL Server هستند و شامل يک يا چندين دستور SQLمي باشند اين رويه ها ميتوانند پارامتر هاي ورودي و خروجي نيز داشته باشند. همچنين ميتوان داخل اين رويه ها به زبان ترين کاربرد اين رويه ها ذخيره کردن مهم SQLبرنامه نويسي کرد. يا ترکيبي از Select,Insert, Update, Delete اين موارد ميباشد. شرکت Sybase در اواخر دهه 1980 براي اولين بار روالهاي ذخيره شده را در SQL Server به کار برد. اين روال ها مانند جداول و ايندکس ها پس از ساخته شدن در پايگاه داده ها ذخيره ميشوند.

4 برخي از قابليت هاي رويه هاي ذخيره شده يا Storedعبارت Procedure است از : Precompiledبودن ا نها به اين معني که به زبان ماشين بسيار نزديک شده و به طور کامل از اول ترجمه نميشود اين امر باعث افزايش سرعت بارگزاري مي گردد. قابليت ذخيره داشته و ميتوان از يک رويه چندين بار در کد نويسي استفاده کرد. داراي ويرايشگر Queryمي باشد (ميتوانيد به سادگي يک Queryحرفه اي ايجاد کنيد)

5 داراي Syntaxهست Parser و از خطاهاي SQLجلوگيري مي کند. داراي امنيت بالايي است و از هک شدن سايت شما توسط SQLدر Injection بسياري موارد جلوگيري مي کند. قابليت درج چندين دستور SQLرا پشت سرهم داراست. قابليت ارسال ورودي و خروجي دارد. زبان شرط حلقه و...) به ) برنامه نويسي قابليت و.... TransactSQLدارد

6 نحوه ايجاد Stored Procedure وارد نرم افزار SQLشده Server و جهت درج Queryجديد اقدام ميکنيم. سپس به صورت زير Storedمورد Procedure نظر را ايجاد مينماي يم. (...,نوع داده پارامتر دوم@, نوع داده پارامتراول@) نام روال Create Procedure As Begin دستورات SQL End

7 مشاهده Stored Procedure هاي ايجاد شده جهت مشاهده Storedهاي Procedure ايجاد شده ميتوانيد وارد نرم افزار SQLشويد Server و در پنجره Object Explorer از مسير زير اقدام فرماييد. DataBaeses Ł عنوان پايگاه داده Ł Programmability Ł Stored Procedures

8 انتخاب نام دانش ا موز از جدول Student Create Procedure Student_SelectName(@ID int) As Begin Select Name From Student Where ID=@ID Return (@@RowCount) End همچنين با استفاده از دستور Return ميتوان يک مقدار از نوع Int را به خروجي فرستاد که ما در اينجا تعداد رکوردهاي حاصل از دستور Select را بازگشت داده ايم.

9 استفاده از پارامتر Outpout Create Procedure Student_SelectName (@ID int, @Name Nvarchar(50) Output) As Begin Select @Name=Name From Student Where ID=@ID Return(@@RowCount) End از نوع پارامتر Outputميباشد @Name و با استفاده از ا ن نام دانش ا موز به خروجي فرستاده داده خواهد شد.

10 استفاده از پارامتر اختياري Create Procedure Student_Insert (@NameNvarchar(50), @Sex bit = 1 ) As Begin Insert Into Student(Name,Sex) Values(@Name,@Sex) Return(@@Identity) End پارامتر @Sex اختياري ميباشد و درصورت عدم مقداردهي مقدار پيشفرض 1 براي ا ن در نظر گرفته خواهد شد. همچنين توسط دستور( Identity @@) Return مقدار ID رکوردي که در حال درج کردن ا ن هستيم بازگردانده ميشود @@identity به فيلدي که در جدول از نوع AutoNumber در نظر گرفته شده است اشاره ميکند

11 اجراي Stored Procedure در Storedديگر Procedure Create Procedure Student_SelectByName(@NameNvarchar(50) ) As Begin Return(Select Count(*) from StudentWhere Name=@Name ) End Create Procedure Student_MyQuery As Begin Declare @Result int Exec @Result=Student_SelectByName@Name= MohammadZavvar If (@Result=0) Exec Student_Insert@Name= MohammadZavvar Return(@@RowCount) End روال Student_MyQuery روال ديگري با نام Student_SelectByName را اجرا ميکند در صورتي که دانش ا موزي به نام MohammadZavvarوجود نداشته باشد دنش ا موزي با اين نام درج خواهد شد. لازم به ذکر است که اجراي SP با کلمه کليدي Exec انجام ميگردد

12 بهينه سازي Stored Procedure ها در نامهاي SPاز _ spاستفاده نكنيد. زيرا اين علامت مخصوص spهاي سيستمي موجود در جدول masterميباشد و هنگامي كه از اين اختصار استفاده ميكنيد سيستم ابتدا دنبال اين نام در جداول سيستمي ميگردد كه اين امر باعث کاهش سرعت اجراي sp خواهد شد. در داخل يك SPبهتر است به جاي اينكه داخل ا ن از دو دستور Select استفاده كرد هركدام را در داخل يك SPقرار داده و ا نرا به هنگام نياز اجرا كنيم. Cache در داخل Queryميتواند يك spفقط استفاده از اين روش اين است که در داخل هر دليل SQLقرار گيرد و اگر از چند دستور Sqlدر داخل يک SPاستفاده نماي يد هر دفعه كه اين SPاجرا شود مجدد كامپايل خواهد شد و اين امر موجب کاهش سرعت اجرا ميگردد. در SPهايي كه نياز نيست كاربر متوجه شود چه تعداد رديف تحت تاثير قرار گرفته است حتما در اول SPدستور Set NoCount On را بنويسيد. زيرا اگر اين دستور را ننويسيد هربار كه عملياتي صورت گرفته SQLتعداد رديفهاي تحت تاثير قرار گرفته را براي كاربر ارسال ميكند و همين باعث ايجاد ترافيك بين clientميشود., server

13 ويرايش دستورات Stored Procedure (...,نوع داده پارامتر دوم@, نوع داده پارامتراول@) نام روال Alter Procedure As Begin دستورات SQL End با استفاده از کلمه کليدي Alter ميتوانيم روال مورد نظر خود را ويرايش نماي يم

14 حذف Stored Procedure روال Drop Procedure نام با استفاده از کلمه کليدي Drop ميتوانيم روال مورد نظر خود را حذف نماي يم

15 ھا Trigger

16 Trigger چيست تريگر در واقع نوعي روال ذخيره شده است که در پاسخ به بروز يکي از شرايط زير اجرا خواهد شد Insert Delete Update اجراي Trigger انواع تريگري که بعد از رويداد Insert/Delete/Update اجرا ميشود و در تعريف ا ن از کلمه کليدي After استفاده ميگردد. (در نسخه هاي قديمي از کلمه For به جاي After استفاده ميشده است) تريگري که به جاي Insert/Delete/Update اجرا ميشود و در تعريف ا ن از کلمه کليدي Instead Of استفاده ميگردد

17 نحوه ايجاد Trigger وارد نرم افزار SQLشده Server و جهت درج Queryجديد اقدام ميکنيم. سپس به صورت زير Trigger مورد نظر را ايجاد مينماي يم. Create Trigger نام تريگر ON نام جدول After/InsteadOf Insert/Update/Delete As Begin دستورات SQL End

18 مشاهده Triggerهاي ايجاد شده جهت مشاهده Trigger هاي ايجاد شده ميتوانيد وارد Object نرم افزار SQLشويد Server و در پنجره Explorer از مسير زير اقدام فرماييد. DataBaeses Ł عنوان پايگاه داده Ł Tables Ł عنوان جدول Ł Triggers

19 جلوگيري از حذف رکورد توسط Trigger Create Trigger Student_NoDelete ON StudentInstead Of Delete As Begin Print Was Not Deleted End تريگر بالا روي جدول Student ايجاد ميشود و از نوع Instead Of Delete ميباشد. يعني زماني که دستور حذف يک رکورد از جدول Student داده شود به جاي دستور Delete تريگر بالا اجرا ميگردد و پيغام Was Not Deleted نمايش داده ميشود.

20 نمايش تعداد سطرهاي جدول Student پس از درج رکورد جديد Create Trigger Student_Insert ON StudentAfter Insert As Begin Select Count(*) FromStudent End تريگر بالا بعد از درج رکورد در جدول Student اجرا ميشود و تعداد سطرهاي جدول را برميگرداند.

21 نمايش رکوردهاي Delete شده Create Trigger Student_Delete ON StudentAfter Delete As Begin Select * From Deleted End تريگر بالا بعد از حذف رکورد در جدول Student اجرا ميشود و رکوردهاي حذف شده را نمايش ميدهد. لازم به ذکر است که در تريگرها پس از عمليات Delete رکوردهاي حذف شده در جدول Deleted و پس از عمليات Insert رکودهاي درج شده در جدول Inserted قرار ميگيرد.

22 نمايش رکوردهاي Update شده Create Trigger Student_Update ON StudentAfter Update As Begin Select * From Deleted End تريگر بالا بعد از بروزرساني رکورد در جدول Student اجرا ميشود و داده هاي قديمي(داده هاي قبل از بروزرساني) را نمايش ميدهد. لازم به ذکر است که در تريگرها پس از عمليات Update داده هاي قديمي در جدول Deleted و داده هاي جديد(داده هاي جايگزين شده) در جدول Inserted قرار ميگيرد.

23 جلوگيري از اعمال تغييرات روي پايگاه داده Create Trigger DataBase_MyTrigger ON DataBase After Drop_Table,Create_Table,Alter_Table,Create_Procedure, Alter_Procedure, Drop_Procedure, Drop_Trigger, Create_Trigger, Alter_Trigger, Drop_View, Create_View, Alter_View AS Begin شما نمي توانيد تغييراتي در پايگاه ايجاد کنيد ' PRINT ROLLBACk End تريگر بالا روي DataBase اجرا ميشود و مانع از انجام تغييرات در پاياه داده ميگردد

24 غير فعال کردن Trigger نام جدول ON نام تريگر DisableTrigger مثال : DisableTrigger Student_Delete ON Student فعال کردن Trigger نام جدول ON نام تريگر EnableTrigger مثال : Enable Trigger Student_Delete ON Student

25 Alter Table نام جدول Disable Trigger All Alter Table Student Disable Trigger All غير فعال کردن Trigger هاي يک جدول مثال : Alter Table نام جدول Enable Trigger All Alter Table Student Enable Trigger All فعال کردن Trigger هاي يک جدول مثال :

26 ويرايش Trigger Alter Trigger نام تريگر ON نام جدول After/InsteadOf Insert/Update/Delete As Begin SQL دستورات End با استفاده از کلمه کليدي Alter ميتوانيم تريگر مورد نظر خود را ويرايش نماي يم

27 حذف Trigger تريگر Drop Trigger نام با استفاده از کلمه کليدي Drop ميتوانيم تريگر مورد نظر خود را حذف نماي يم

28 منابع کتاب ا موزش SQLدر 21 ابراهيمي روز. نويسنده: رايان استنفز. مترجم: مهندس سيروسيان و مهندس کتاب ا موزش VB.NET در. Visual Studio.NET 2010 نويسنده: مهندس محسن مدحج