کد خبر : 3720 تاریخ انتشار : یکشنبه 8 نوامبر 2009 - 15:42

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

Rate this post

8

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

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

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

روش استفاده :

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

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

شدت:عددي بين 1 تا 25 براي پيام هايي كه خودمان پياده مي كنيم مي توانيم يك عدد بين 1 تا 18 بدهيم

حالت: عددي است بين     1 تا 127 كه اطلاعاتي راجع به حالت خطا را نگه مي دارد

تابع()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 كه باعث اجراي تريگر مي شودبا 2 جدول موقت 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 تغيير مي كند.

موفق باشيد

دسته بندی : آموزش ، برنامه نویسی
برچسب ها :
دیدگاهتان را بنویسید

این سایت از اکیسمت برای کاهش جفنگ استفاده می‌کند. درباره چگونگی پردازش داده‌های دیدگاه خود بیشتر بدانید.

R6E5 در تاریخ 15 نوامبر 2009 گفته : پاسخ دهید

سلام
عالیه … موفق باشید …
^_^

مسعود رضايي در تاریخ 15 نوامبر 2009 گفته :

خواهش می کنم .مرسی از نظرات که در مطالب دیگر هم دادید

hessam در تاریخ 9 نوامبر 2009 گفته : پاسخ دهید

salam

man ro ba name
دهکده دانلود
link konid mamnon