تریگر (Trigger) چیست؟


«ایجاد شکست صعودی میان خط اندیکاتور RSI و سطح ۳۰»

تریگر (Trigger) چیست ؟

تریگر (Trigger) چیست ؟
Trigger نوعی رویه ذخیره شده است که پس از یک رویداد اجرا می شود ، برخلاف Stored Procedure که حتما باید فراخوانی شود Trigger ها قابل فراخوانی نبوده و به صورت خودکار در واکنش به اعمال Insert , Update , Delete (قبل یا بعد از تراکنش) اجرا می شوند .

Trigger نوعی رویه ذخیره شده است که پس از یک رویداد اجرا می شود ، برخلاف Stored Procedure که حتما باید فراخوانی شود Trigger ها قابل فراخوانی نبوده و به صورت خودکار در واکنش به اعمال Insert , Update , Delete (قبل یا بعد از تراکنش) اجرا می شوند .

واضح است که چنین رویه بر خلاف SP نمیتواند پارامتر ورود و خروجی بپذیرد و اطلاعات خود را از رکورد مورد نظر (رکوردی که Insert , Update یا Delete بر روی آن صورت گرفته که اصطلاحا Updated , Inserted و Deleted خوانده می شود)

مهمترین کاربر Trigger ها به شرح زیر است :

  • جلوگیری از ورود داده های نا معتبر
  • لاگ نمودن تراکنش ها
  • حذف یا به روز رسانی رکورد ها در جداول مرتبط
  • بالا بردن کارایی سیستم
  • تریگر (Trigger) چیست؟
  • تغییر و جایگزینی یک تراکنش
  • و.

به دلیل اینکه Trigger ها خیلی سریع عمل می کنند برای ما بسیار سودمند خواهند بود ، برای روش شدن مطلب چند مثال میزنم :

  • فرض کنید یک جدول کاربران دارید ، میخواهیم اگر یک یک رکورد از این جدول حذف شد ، رکوردهایی از جداول مختلف حذف شده و برخی هم تغییر کنند . شاید بگوید که Relation ها این کار را انجام می دهند در صورتی که اینطور نیست و خیلی جای مانور وجود ندارد ، اما با یک Trigger ساده After Delete میتوانید این کار را به سادگی انجام دهید .
  • فرض کنید جدول کاربران شما دارای یک ستون اعتبار است ، و یک جدول دیگر برای ثبت اعتبار های کسر شده یا اضافه شده وجود دارد ، مایلیم هر گاه یک رکورد به جدول اعتبارها اضافه شد ستون اعتبار جدول کاربر نیز به روز شود (از اعتبار کاربر کسر شده یا به آن اضافه شود) ، این کار را میتوانید در کد نویسی یا در SP انجام دهید ولی بهترین جای قرار گیری آن در Trigger است چرا که استثنا ندارد یعنی به هر طریقی رکوردی کم و زیاد شود به روز رسانی انجام خواهد شد در ضمن بسیار سریع عمل می کند .
  • لاگ کردن رویداد ها نیز استفاده دیگری از Trigger ها است ، شما میتوانید تراکنش های بانک اطلاعاتی را لاگ کنید .
  • فرض کنید قرار است در یک جدول اطلاعاتی وارد شود ، ممکن است این اطلاعات تکراری باشند ، برای جلوگیری از تکرار معمولا ما از IF استفاده میکنیم بدین معنی که چک می کنیم اگر این داده در بانک باشد از درج آن جلوگیری می کنیم ، این شرط را میتوان در کدنویسی سمت سرور یا در SP قرار داد ولی بازهم بهترین جا برای قرار دادن آن در یک Trigger می باشد .

برای ایجاد یک Trigger مطابق شکل زیر عمل کنید :

همانطور که ملاحظه می کنید فرمت یک Trigger در سمت راست نمایش داده شده است ، پس از واژه Create trigger نام Trigger ذکر شده و سپس واژه On و پس از آن نام جدولی که مد نظر ماست ذکر می شود ، سپس واژه After و یکی از تراکنش های Insert , Delte یا Update و سپس کدها ما پس از Begin قرار خواهد گرفت .

برای نمونه کد مثال اول را به صورت زیر می نویسیم :

پس نوشتن کد فوق دکمه Execute را بفشارید تا Trigger ایجاد شود ، برای ویرایش آن هم میتوانید روی Trigger کلیک راست کرده و گزینه Alter را انتخاب کنید

همانطور که ملاحظه می کنید برای بدست آوردن کد کاربری که حذف شده است از یک دستور Select ساده استفاده کرده ام ، نکته مهم اینجاست که به جای نام جدول از کلمه "Deleted" استفاده شده یعنی "رکورد (یا رکوردهای) حذف شده" ، این قضیه برای Insert و Update نیز صادق است یعنی "Inserted" و "Updated" ، سپس مقدار بدست آمده از دستور Select را در یک متغیر به نام [email protected] ذخیره کرده و در شرط حذف از آن استفاده کردیم .

از این پس هر رکوردی از جدول TBLUsersحذف شود تمام رکوردهای جدول TBLBlogs نیز حذف خواهد شد

البته در این مثال میتوانستیم از Relation ها جهت این عمل استفاده کنیم ولی در بسیاری از شرایط بین بسیاری از جداول Relation وجود ندارد ولی ما میخواهیم تراکنش ها روی سایر جداول نیز تاثیر بگذارند ، بنابراین نیاز به Trigger ها امری مشخص است .

برخی از برنامه نویسان به جای استفاده از Trigger این اعمال را در لایه Bussiness Logic انجام می دهند (مثلا پس از یک تراکنش یک Query دیگر اجرا می کنند ) ، این کار با افزایش تعداد تراکنش ها باعث افت کارایی سیستم خواهد شد .

تریگر (Trigger) چیست؟

لطفا وارد شده یا عضو شوید تا بتوانید دیدگاهی ارسال نمایید

لطفا وارد شده یا عضو شوید تا بتوانید سوال بپرسید

1 پاسخ

لطفا وارد شده یا عضو شوید تا بتوانید دیدگاهی ارسال نمایید

به NazarEx.ir خوش آمدید
در مورد رمزارزها و ارزهای دیجیتال
راحت بپرسید ، پاسخ دهید و امتیاز کسب کنید و جایزه بگیرید !

ثبت نام در صرافی آنلاین کوینکس ثبت نام در صرافی آنلاین نوبیتکس ثبت نام در صرافی آنلاین کوکوین آموزش ثبت نام در صرافی کوینکسCoinEx آموزش ثبت نام در صرافی کوکوین KuCoin عضویت رایگان در نظر اکس

تمامی حقوق برای پارس رسانه محفوظ است | Nazarex.ir

تریگر چیست و کاربرد آن در معامله

Trigger 1

در راستای ادامه مباحث قبلی در مورد استراتژی های معامله در بازارهای ارز دیجیتال، مقالاتی مثل میانگین ارز دلاری یا همان DCA رو ارائه داده ایم. استراتژی هایی که به ما کمک می‌کنند بازدهی خود از معامله را به حداکثر برسانیم. در این مقاله تیم توکن باز قصد دارد از مقوله تریگر پرده برداری کند و به شناخت ماهیت آن بپردازد. پس با ما همراه باشید.

مفاهیم کلی:

تریگر(Trigger) چیست؟

در تعریف تریگر، می توانیم این‌گونه بگوییم که این کلمه در لفظ به معنای ماشه می باشد. اما همین لفظ در ترید و یا معامله به زمانی گفته می شود که کاربر قصد دارد با ورود یا خروج از پوزیشن، سهم یا رمز ارز را بگیرد. این زمان همیشه و همواره در تحلیل تکنیکال مورد بهره وری تریدرها بوده است و باید بدانیم در معاملات نقاط خروج و یا ورود هر سهم نکته مهمی تلقی می شود.
تریدری موفق است و خرید و فروش ایده آل و حرفه‌ای‌تری صورت می‌دهد که قادر باشد نسبت به خروج و ورود از سهم یا ارز مورد نظر تحلیل مطلوب‌تر و منطقی‌تری ارائه دهد. درحقیقت می‌توان گفت تریگر در مشخص سازی نقاط داد و ستد با بهره‌مندی از تحلیل تکنیکال نقش بسزا و پررنگی را ایفا می‌کند.

به طور مثال: در تحلیل تکنیکال یک سهم، هنگامی که نمودار از حالت سقوط و نزولی به حالت صعودی شدن تغییر رویه می‌دهد، در بازارهای مالی، بدان اصطلاحاً شکست روند نزولی می‌گویند و در راستای آن یک سیگنال مثبت جهت خرید در آن ناحیه تشکیل می‌شود.
در همین راستا یک فرصت مطلوب برای تریدر شکل می‌گیرد تا نسبت به خرید سهم مد نظر راغب شود. این هنگام در معامله‌گری تریگر محسوب شده و به کاربر کمک می‌کند تصمیم مطلوب‌تری برای داد و ستد اتخاذ کند.

آیا تریگر تنها اختصاص به معامله و ورود آن دارد؟

یکی از باورهای غلط در مورد مبحث تریگر این می‌باشد که تعدادی از تریدرهای تکنیکالی، تریگر را صرفاً منحصر به پروسهٔ ورود دانسته و لحاظ می‌کنند. اما این باور غلطی بیش نیست و تریگر در هر دو صورت ورود و خروج از تریدها کاربرد دارد.

در حقیقت شخص کاربر تحت عنوان یک تریدر با مهارت و حرفه‌ای باید مجموعه مدون از قوانین برای همهٔ اقدامات خود تعریف کرده باشد. زیرا ممکن است بعد از ورود کاربر به معامله در شرایط مطلوب و بهترین سطح ممکن روند حرکت بازار، بعد از مدتی وارانه گشته و موقعیت بسیار سود ده مبدل به یک امر زیان بار گردد.
بنابراین نتیجه خواهیم گرفت که تریدری موفق می‌شود که برای خروج از معاملات نیز به طور حتمی تریگرهای معینی تعریف کرده باشد.

تریگرهای بر مبنای ابزار تکنیکالی

آنچه محرز است این است که با توسعه و پیشرفت بازارهای مالی، تحلیل ها خصوصاً تحلیل تکنیکال به جهانی سراسر از ابزارهای نموداری گوناگون و متنوع مبدل گشت. اما لازم است بدانیم تریدرها از روش های متنوعی برای تحلیل نمودار قیمت بهره جسته که در این راستا باید بگوییم تریگرهای آنان نیز با همدیگر متمایز خواهند بود.
دانستن این مسئله در مورد تریگرهای ورود و خروج امری ضروری تلقی می شود. اما به علت تمایز ابزار تحلیل، احتمال دارد بعضی از تریدرها قادر باشند به طور همزمان تریگرهای گوناگون و معکوسی را داشته باشند. به تریگر (Trigger) چیست؟ طوری که تریگر ورود کاربر، معادل تریگر خروج کاربر دیگری باشد.
ضمن آنکه اگر به صورت تحلیل چند زمانی اقدام به تحلیل و ترید کرده باشید، بازه ی زمانی کوچکتر تحت عنوان زمان تریگر (تایم تریگر)تلقی می شود؛ شخص کاربر در نمودار با ابعاد زمانی وسیع‌تری اقدام به تحلیل کرده و تریگرهای معلاملاتی را بر روی نمودار با بازه‌ی زمانی کوچک‌تری یافت می کنید.

انواع تریگرها

در این قسمت قصد داریم از تریگرهای ورود و خروج بر مبنای ابزار گوناگون و نمودارهای بازار را شرح دهیم:

اندیکاتور (Indicator)

همانطور که می دانیم یکی از گوناگون ترین ابزارهای تحلیل نموداری بازارها، اندیکاتورها می باشند. کاربر قادر است از این ابزار به عنوان قسمتی از فرایند تحلیلی استراتژی معاملاتی خود به جهت تشخیص شرایط ورود یا خروج از ترید بهره جویی کند. میانگین متحرک ساده ۹ روزه را می توان یکی از اندیکاتور های تریگر دانست و از آن به عنوان تریگر خروج و ورود از آن بهره جست.

پولبک (pullback)

بر طبق گفته برخی متخصصان، کار با نمودارهای قیمتی، روش معاملاتی تکنیکالی محسوب شده که جزء کم خطر‌ترین تاکتیک‌های ورود به معامله تلقی می شود.
در حقیقت مقصود از تریدری مبتنی بر پولبک ها آن است که در مطلوب ترین شرایط از حیث بازده و ریسک موجود به پوزیشن های معاملاتی ورود کنید.

شکست (breakout)

در این مورد همانند مورد قبلی یعنی پولبک، قیمت مبحث های بسزایی وجود دارد. واقعیت امر این است که پولبک‌ها همواره به وجود نیامده و در این شرایط قیمت به محض شکست با سرعت بسزایی به حرکت در مسیر خود تداوم می بخشد.
البته باید خاطر نشان شویم که بودن الگوهای شکست جعلی نیز امری غیرقابل انکار می باشند. به هر صورت بسیاری از تریدرها ترجیح می‌دهند که در هنگام شکست‌های قیمتی به معاملات ورود کرده و به انتظار برگشت قیمت نمانند.

الگوی قیمت (Price pattern)

این روش نیز به طور تقریبی همانند اندیکاتور ها از تنوع بسزایی برخوردار است و طرفداران زیادی را به خود مجذوب کرده است. مزایای اصلی این روش آن است که این الگوها قادرند، توان پیش بینی بسزایی داشته باشند. ضمن آنکه امکان معامله‌گری تحلیل چندزمانی و تعیین سود و ضرر نیز بدان افزود.

نمودار شمعی (Candle chart)

نمودارهای شمعی یا کندل استیک که پیشینه ی آن به کشور ژاپن برمیگردد، یکی از محبوب ترین ابزارهای تحلیل تکنیکال در بازارهای مالی محسوب می شود. علت این محبوبیت نیز درک و فهم سهل و آسان این نمودار بوده پس باید بدانیم روش های معاملاتی بسزایی بر اساس کندل استیک ها به وجود آمده است.

مزایا و معایب بهره وری از تریگرها

تریگرها نیز دارای مزایا و معایبی هستند که در ذیل به طور مختصر به شرح آنها می‌پردازیم.

تریگر چیست و چه کاربردی در تحلیل تکنیکال دارد؟

تریگر چیست؟

یکی از دلایل رواج تحلیل تکنیکال در میان فعالان بازارهای مالی، امکان تعیین قوانین ورود و خروج از معامله با دقت بالا است. در واقع یافتن بهترین روش برای ورود و خروج دغدغه اصلی اغلب معامله‌گران بوده و برای آن‌ها به مثابه جام مقدس سرمایه‌گذاری می‌باشد. در بسیاری از مواقع مشاهده کرده‌ایم، که یک معامله‌گر پس از سال‌ها فعالیت در بازار سهام هنوز بازدهی مناسبی ندارد.

با بررسی ژورنال (دفترچه یادداشت جزئیات معاملات) و استراتژی معاملاتی این فرد مشخص می‌شود، که مشکل اصلی او نداشتن قانون یا ابزار مشخصی برای تعیین شرایط ورود یا خروج از معامله است. علیرغم اینکه هر کدام از روش‌های تحلیل بازار بورس مزایا و معایبی دارند، اما به اذعان اکثریت کارایی روش‌های تکنیکالی در تعیین نقاط ورود و خروج بهینه اثبات شده است.

در مطلب حاضر به شرح یکی از مفاهیم معامله‌گری تکنیکالی تحت عنوان تریگر می‌پردازیم، تا اهمیت تعیین قوانین و جزئیات دقیق در فرآیند اتخاذ هر کدام از تصمیمات معاملاتی برای شما مشخص شود.

مفهوم تریگر در معامله‌گری چیست؟

قبل از هر چیز باید به این نکته اشاره کنیم، که برخی تحلیل‌گران تریگر را مختص ابزار نموداری خاصی پنداشته و حتی اسامی مرکب جدید برای آن در نظر می‌گیرند؛ اما اصولاً تریگر محدود به یک ابزار تحلیلی خاص نبوده و به عنوان یک مفهوم جامع در تمام روش‌های تحلیل تکنیکال استفاده می‌شود.

واژه تریگر از لحاظ لغوی به معنای ماشه است. تریگر در تحلیل تکنیکال و معامله‌گری به نقاط، نواحی یا سطوحی اطلاق می‌شود؛ که ما بر اساس روش تحلیل یا استراتژی معاملاتی خود در آن محدوده‌ها اقدام به ورود یا خروج از معامله می‌کنیم.

در این فرآیند نوع موقعیت معاملاتی (خرید یا فروش)، نماد و بازار مالی تفاوتی ایجاد نمی‌کند، زیرا هر اقدامی باید بر اساس تریگر مورد نظر معامله‌گر صورت گیرد.

در واقع شما باید تریگر را به عنوان نشانه یا مجموعه نشانه‌هایی برای معامله‌گری در محدوده‌های نموداری مشخصی درنظر بگیرید، که آن‌ها را بر اساس ابزار تحلیل خود تدوین نموده و در استراتژی معاملاتی شخصیتان گنجانده‌اید.

مثلاً معامله‌گر الف بر اساس وقوع شرایط زیر به عنوان تریگر ورود اقدام به خرید می‌کند:

«ایجاد شکست صعودی میان خط اندیکاتور RSI و سطح ۳۰»

آیا تریگر صرفاً مختص ورود به معامله است؟

دومین تفکر اشتباه در مورد مفهوم تریگر این است، که تعدادی از معامله‌گران تکنیکالی آن را منحصر به فرآیند ورود درنظر می‌گیرند! اما همان‌گونه که اشاره نمودیم، تریگر در ورود و خروج از معامله کاربردی است.

در واقع شما به عنوان یک معامله‌گر حرفه‌ای باید مجموعه قوانین مشخصی برای تمام اقدامات خود داشته باشید. چه بسا پس از ورود به معامله در بهترین سطوح ممکن و حرکت بازار در جهت مورد نظر شما، روند قیمت پس از مدتی معکوس شده و یک معامله سودآور به موقعیتی زیان‌ده تبدیل شود!

لذا به این نتیجه می‌رسیم، که شما برای خروج موفق از معاملات نیز حتماً باید تریگرهای مشخصی داشته باشید.

تریگر بخش جدایی ناپذیر هر استراتژی معاملاتی است!

بارها و در منابع آموزشی مختلف بر لزوم تدوین یک استراتژی معاملاتی شخصی برای هر معامله‌گر بازار مالی تأکید شده است. اجزای اصلی یک استراتژی معاملاتی کامل نقاط (تریگر) ورود، خروج و سیستم مدیریت سرمایه می‌باشند.

به عبارت دیگر تدوین یک استراتژی معاملاتی بدون وجود تریگرهای دقیق ورود و خروج بی معنی بوده و در این شرایط اساساً استراتژی معاملاتی وجود ندارد. بنابراین اگر شما به مرحله ساخت یک استراتژی معاملاتی شخصی رسیده‌اید، به ناخودآگاه با مفهوم تریگر سروکار دارید.

تریگرهای مبتنی بر ابزار تکنیکالی مرسوم

امروزه با توسعه بازارهای مالی تحلیل تکنیکال به دنیایی از ابزار نموداری متنوع و گوناگون تبدیل شده است. معامله‌گران از روش‌های مختلفی برای تحلیل نمودار قیمت استفاده نموده و بالطبع تریگرهای آن‌ها نیز با یکدگر متفاوت می‌باشد.

ذکر این نکته در مورد تریگرهای ورود و خروج ضروری است، که به دلیل تفاوت ابزار تحلیل احتمالاً برخی معامله‌گران در آن واحد تریگرهای مختلفی و معکوسی داشته باشند. در واقع شاید تریگر ورود شما معادل تریگر خروج دیگری باشد.

همچنین اگر به صورت مولتی تایم فریم (تحلیل چندزمانی) اقدام به تحلیل و معامله می‌کنید، تایم‌فریم کوچکتر به عنوان تایم تریگر خواهد بود؛ زیرا شما در نمودار با چهارچوب زمانی بزرگتر اقدام به تحلیل نموده و تریگرهای معاملاتی را در نمودار با تایم‌فریم کوچکتر پیدا می‌کنید.

در این بخش به ذکر مثال‌هایی از تریگرهای ورود و خروج بر اساس ابزار مختلف و نمودارهای بازار سهام تهران می‌پردازیم:

۱- اندیکاتور

یکی از متنوع‌ترین ابزارهای تحلیل نموداری بازار سهام اندیکاتورها هستند. شما می‌توانید از اندیکاتور به عنوان بخشی از رویکرد تحلیلی استراتژی معاملاتی خود برای تعیین شرایط ورود یا خروج از معامله استفاده کنید.

در این بخش ما از اندیکاتور میانگین متحرک ساده ۹ روزه به عنوان ابزار تحلیل نمودار برای دریافت تریگرهای ورود و خروج از معامله استفاده کرده‎ایم.

تریگر چیست؟

در نمودار فوق که مربوط به شرکت فولاد مبارکه اصفهان است، شکست صعودی قیمت و اندیکاتور تریگر ورود می‌باشد. در طرف مقابل شکست نزولی قیمت و اندیکاتور نیز شرایط یا تریگر خروج از معامله است.

۲- پولبک

به اذعان بسیاری از متخصصان کار با نمودارهای قیمتی، این تکنیک معاملاتی تکنیکالی جزء کم ریسک‌ترین روش‌های ورود به معامله محسوب می‌شود. در واقع هدف معامله‌گری بر اساس پولبک‌ها این است، که در بهترین شرایط ممکن از لحاظ ریسک و بازده وارد موقعیت‌های معاملاتی شوید.

کیفیت استفاده از پولبک‌های قیمتی به عنوان تریگر معاملاتی در نمودار شرکت ملی صنایع مس ایران نیز کاملاً مشهود می‌باشد. با استفاده از دو فرصت پولبکی موجود امکان ورود به معامله با کمترین حد زیان و بیشترین پتانسیل سوددهی وجود داشته است.

تریگر چیست؟

۳- شکست

در مورد مفاهیم شکست و پولبک قیمت مباحث بسیاری وجود دارد. حقیقت این است، که پولبک‌ها همیشه ایجاد نشده و در این مواقع قیمت به محض شکست با سرعت بالایی به حرکت در مسیر خود ادامه می‌دهد. البته وجود الگوهای شکست جعلی نیز غیرقابل انکار است. به هر جهت بسیاری از معامله‌گران ترجیح می‌دهند، که حین شکست‌های قیمتی وارد معامله شده و منتظر بازگشت قیمت نباشند.

تریگر چیست؟

نمودار فوق مربوط به نماد شپنا (پالایش نفت اصفهان) است. پس از شکست خط روند سقف نسبتاً طولانی‌مدت یک شکست صعودی ایجاد شده و تریگر ورود برای معامله‌گران مبتنی بر شکست فعال می‌شود. جالب این است که در جریان این شکست نیز یک پولبک دیده می‌شود!

۴- الگوی قیمت

الگوهای قیمتی نیز تقریباً همانند اندیکاتورها تنوع زیاد و طرفداران بسیاری دارند. از تریگر (Trigger) چیست؟ مزایای اصلی این الگوها می‌توان به قدرت پیش‌بینی بالا، امکان معامله‌گری مولتی‌ تایم‌فریم، تعیین حد سود و زیان اشاره نمود.

در نمودار شرکت خدمات انفورماتیک (نماد: رانفور) یک الگوی پرچم صعودی را مشخص نموده‌ایم. تریگر ورود مورد نظر بر اساس شکست صعودی میان قیمت و لبه بالایی پرچم ایجاد شده است. هر چند این نوع تریگر نیز بر مبنای شکست قیمت ایجاد می‌شود، اما وجود یک الگوی قیمتی معتبر دلیل اصلی ورود به موقعیت خرید می‌باشد.

تریگر چیست؟

۵- کندل استیک

این ابزار ساده نموداری که سابقه پیدایش آن به کشور ژاپن باز می‌گردد، به جرئت یکی از محبوب‌ترین ابزار تحلیل تکنیکال بازارهای مالی است. دلیل این محبوبیت نیز به سادگی فهم ماهیت کندل‌استیک‌ها، الگوها و سایر جزئیات مرتبط با آن‌ها می‌باشد. بنابراین روش‌های معاملاتی زیادی بر مبنای کندل‌استیک‌ها ایجاد شده‌اند.

در نمودار زیر از یک الگوی پوشای صعودی به عنوان تریگر ورود استفاده شده است. معامله‌گران پیرو این الگوی کندلی پس از بسته شدن شمع پوشاننده تریگر ورود خود را مشاهده نموده و اقدام به خرید می‌کنند.

تارنمای جامع سیستم عامل

مطالب مرجع و تخصصی در زمینه سیستم عامل ویژه دانشجویان و محققین علوم کامپیوتری

تریگر (Trigger) چیست ؟

فرض کنید بخواهید مقدار فیلد شماره درس را در جدول Course تغییر دهید یا حذف کنید . ممکن است این مقدار در جدول Grade وجود داشته باشد . در این صورت ، اگر مقدار شماره درس در جدول course تغییر کند یا حذف شود ، اطلاعات جدول Grade که این شماره درس را دارند ، به رکوردهای نا معتبر تبدیل خواهند شد . به عنوان مثال دیگر ، فرض کنید شماره درسی را در جدول grade وارد کنید ، ولی این شماره درس در جدول Course موجود نیست . برای جلوگیری از این این مشکلات می توانید از تریگر ها استفاده کنید .ترگر ها ، نوع خاصی از رویه های ذخیره شده اند که در هنگام تغییر داده های جدول برای محافظت از طراحی بانک اطلاعاتی تریگر (Trigger) چیست؟ فعال می شوند و از ورود داده های نا معتبر جلوگیری می کنند.

دو تفاوت بین ترگر ها و رویه های ذخیره شده :

۱- تریگر ها فاقد پارامتر هستند . ولی رویه های ذخیره شده می توانند پارامتر داشته باشد .

۲- تریگر ها در هنگام تغییر داده های جدول فعال می شوند ، ولی رویه های ذخیره های ذخیره شده حتما باید فراخوانی شوند تا اجرا گردند.

هر جدول می تواند حداکثر ۳ تریگر داشته باشد که عبارتند از :

o تریگر در هنگام اضافه کردن رکورد (Insert )

o تریگر در هنگام به روز رسانی رکورد ( Update )

o تریگر در هنگام حذف رکورد ( Delete )

به طور پیش فرض ، کلیه تریگر های جدول پس از تغییرات جدول فعال می شوند . این تریگر ها AFTER نام دارند . تریگر های دیگری نیز وجود دارند که INSTEAD OF نامیده می شوند و به جای تغییر در داده های مورد نظر ، باعث فعال سازی خودشان می شوند . در SQL SERVER تریگر ها از دو جدول Inserted و Deleted استفاده می کنند . این جداول مضابه ساختار جدول پایه ای است که تریگر ، برای آن جدول ایجاد شده است. اگر کوردی به جدول اضافه کنید ، این رکورد علاوه بر این که در جدول پایه اضافه می شوند ، در جدول Inserted نیز اصافه خواهند شد . اگر رکوردی را در جدول پایه تغییر دهید ، این رکورد از جدول پایه حذف به جدول Deleted اضافه خواهد شد . رکورد جدید به جدول پایه و جدول Inserted اضافه می شود.

نکته : تریگر ها ، توابع بسیار خوبی برای استفاده هستند و جامعیت بانک اطلاعاتی را بررسی می کنند ، اما موجب افزایش I/O می گردند.

ایجاد تریگر ها در SQL Server

- CREATE TRIGGER trigger_name
ON < table | view >
[ WITH ENCRYPTION ]
<
< < FOR | AFTER | INSTEAD OF > < [ INSERT ] [ , ] [ UPDATE ] >
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ < IF UPDATE ( column )
[ < AND | OR >UPDATE ( column ) ]
[ . n ]
| IF ( COLUMNS_UPDATED ( ) < bitwise_operator >updated_bitmask )
< comparison_operator >column_bitmask [ . n ]
> ]
sql_statement [ . n ]
>
>

نام تریگر را مشخص می کنند

جدول یا دیدگاهی که تریگر برای ان ایجاد می شود را مشخص می کند که می تواند یک از جداول بانک یا دیدگه ها باشد.

مشخص می کند که تریگر در چه زمانی اجر شود قبل از عمل ، بعد از عمل یا به جای عمل ..

مشخص می کند که برای کدام عمل اصلی اعمال شود که می تواند مقادیر (INSERT , UPDATE , DELETE) باشد اما قسمت اول

مجموعه دستوراتی که باید انجام شود را نگه می دارد

ایجاد تریگری به نام tr_delete که در هنگام حذف رکوردی از جدول type فعال شود.

Create Trigger tr_delete

Raiserror('%d record delete ' ,0,1,@@rowcount)

ایجاد تریگری برای به نام tr_delete1 که به جای عملیات delete جدول type فعال می شود.

Create Trigger tr_delete1

INSTEAD OF delete AS

Delete from temp where >

ایجاد تریگری به نام tr_InUp که در هنگام اضافه کردن و یا ویرایش رکورد فعال می شود.

Create Trigger tr_InUp

FOR INSERT , UPDATE

Raiserror('%d redord inserted or updateted',0,1,@@rowcount)

تغییر تریگر در بانک اطلاعاتی SQL Server

برای این منظور از دستور ALTER TRIGGER استفاده کنید.

ALTER TRIGGER trigger_name
ON ( table | view )
[ WITH ENCRYPTION ]
<
< ( FOR | AFTER | INSTEAD OF ) < [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE ] >
[ NOT FOR REPLICATION ]
AS
sql_statement [ . n ]
>
یا
< ( FOR | AFTER | INSTEAD OF ) < [ INSERT ] [ , ] [ UPDATE ] >
[ NOT FOR REPLICATION ]
AS
< IF UPDATE ( column )
[ < AND | OR >UPDATE ( column ) ]
[ . n ]
| IF ( COLUMNS_UPDATED ( ) < bitwise_operator >updated_bitmask )
< comparison_operator >column_bitmask [ . n ]
>
sql_statement [ . n ]
>
>

نام تریگر را مشخص می کنند.

جدول یا دیدگاهی که تریگر برای ان ایجاد می شود را مشخص می کند که می تواند یک از جداول بانک یا دیدگه ها باشد.

مشخص می کند که تریگر در چه زمانی اجر شود قبل از عمل ، بعد از عمل یا به جای عمل ..

مشخص می کند که برای کدام عمل اصلی اعمال شود که می تواند مقادیر (INSERT , UPDATE , DELETE) باشد اما قسمت اول

مثال : دستوراتی که عملکرد تریگر tr_delete را تغییر میدهد به طوری که رکوردی را از جدول student حذف کرده و پیغامی به کاربر نمایش می دهد.

Alter Trigger tr_delete

PRINT ('record deleted')

برای این منظور از دستور DROP TRIGGER استفاده کنید.

Trigger…n : تریگر هایی هستند که باید حذف شوند

مثال : دستوراتی که تریگر tr_delete tr_InUp, را حذف می کند.

DROP TRIGGER tr_delete , tr_InUp

مطالب مرجع و تخصصی در زمینه سیستم عامل ویژه دانشجویان و محققین علوم کامپیوتری



اشتراک گذاری

دیدگاه شما

اولین دیدگاه را شما ارسال نمایید.