آموزش SQl server-جلسه هشتم

8

خدمت همه دوستان عزیز باید بگم که این آخرین قسمت آموزش Sql server هست و بعد ازاین دیگه میتونیم آموزش Visual Studio.net رو شروع کنیم.

دستور raiserror در تریگرها

توسط این دستور یک پیغام خطا تولید میشود که در جدول sys_message در بانک اطلاعاتی master (جدول پیغام های سیستمی ) ذخیره می شود.

روش استفاده :

(حالت ،شدت،”متن خطا “)raiserror

متن خطا:یا متن یا شماره پیغامی از پیغام های سیستمی که در جدول پیغام های سیستمی ذخیره شده

شدت:عددی بین ۱ تا ۲۵ برای پیام هایی که خودمان پیاده می کنیم می توانیم یک عدد بین ۱ تا ۱۸ بدهیم

حالت: عددی است بین     ۱ تا ۱۲۷ که اطلاعاتی راجع به حالت خطا را نگه می دارد

تابع()update در تریگر

در ازای عملیات های insert  و update یک مقدار بولین برمی گرداند که اگر true باشد یعنی آن ستون تغییر کرده است.

روش استفاده:

…  (نام ستون یا فیلد)if update

نکته :این تابع فقط در بدنه تریگر ها استفاده می شود.

مثال: تریگری بنویسید که اجازه ندهد فیلد نام تغییر کند.

create  trigger  name_std

on student

after upfate , insert

as

(if  update (std_name

begin

(raiserror(“you can not change name”,10,2

rollback

end

مفهوم جداول deleted ,inserted

دستورات DML که باعث اجرای تریگر می شودبا ۲ جدول موقت inserted و deleted کار می کند که این دو جدول به صورت اتوماتیک ایجاد و مقدار دهی می  شوند ما می توانیم از این جداول برای تست کردن عملیات های DML قبل از اعمال روی جداول استفاده کنیم.

در جدول deleted یک نسخه از تمام رکورد های حذف شده در اثر دستورات delete یا update را نگه می دارد و جدول inserted یک نسخه از تمام رکورد های جدید اضافه شده بر اثر عملیات های insert , update را نگه می دارد دقت کنید که عمل update هردو جدول را مقدار دهی می کند.

ما از طریق نوشتن دستورات join جداول موقت را با جداول اصلی می توانیم مقادیری را که قبلا حذف شده بود یا تازه درج شده را ببینم:

مثال:تریگری بنویسید که بعد از عملیات درج رکورد های درج شده جدید جدول insert را نمایش دهد.

create trigger inset_trigger

on student

for insert

as

select student.std_num  ,inserted.std_num

from inserted,student

where student.std_num=inserted.std_num

تابع drop برای حذف تریگر

نام تریگر drop trigger

تابع alter برای تغییر تریگر

نام  تریگری که میخواهیم تغییر بدهیم  alter  trigger

نام جدول   on

…..   for

…..as

یکی از موارد on,forیا as تغییر می کند.

موفق باشید

برچسب‌ها :

توضیحات در مورد نویسنده :

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

Visit Masoud's Website



محصولات فروشگاه



<