ورود

View Full Version : تریگر INSTEAD OF



net_ved
چهارشنبه 21 اسفند 1387, 16:51 عصر
با سلام
من یه جدول دارم که می خوام زمانی که روش Insert , Update می کنم مقدارهای که به فیلداش نصبت دادمو دست کاری کنم و بعد ثبت کنم
واسه همین یه تریگر می خوام که این کارو بکنه ...
مثلا : insert into tbl1 f1 values 1000
وقتی دستور بالا خواست اجرا بشه تریگر مورد نظر باید اینو جای اون اجرا کنه :
insert into tbl1 f1 values 1000 + 5
به این نکته توجه کنید که عدد 1000 داده ای که کاربر وارد کرده و من از تریگر این انتظارو دارم که به داده ای که کاربر

درخواست ثبت اونو داره یعنی در این مثال همون عدد 1000 دسترسی داشته باشه ... اینجاس که گیر کردم
ممنون

adibadm
پنج شنبه 22 اسفند 1387, 00:23 صبح
دوست عزیز شما باید از جدول های INSERTED, DELETED استفاده کنی.

اول یک متغییر هم جنس با اون فیلدی که می خوایی تغییر کنه تعریف کن

DECLARE @AA bigint
حالا باید مقداری که کاربر وارد کرده رو بریزیم تو این متغییر پس

SET @AA=(SELECT نام اون فیلدی که همون 1000 توش میره FROM INSERTED)
این شکلی 1000 میره تو متغییره AA@ حالا بعد از انجام تغییرات مورد نظرتون دوباره جدول رو آبدیت کنید.