ورود

View Full Version : سوال: مشکل در ساخت یک Triggers



raziee
یک شنبه 21 تیر 1388, 10:39 صبح
سلام دوستان.
من میخوام در تریگر مربوط به اضافه کردن در یک جدول مقداری رو در همون جدول تغییر بدم.
مشکل اینجاست که نمیدونم چه جوری مقدار کلید همون سطری که اضافه شده رو بدست بیارم.
مثلا من جدولی به نام پروفایل دارم و میخوام در تریگر مربوط به درج مقدار فیلدی به نام تاریخ ثبت نام رو ویرایش کنم.
حالا میخوام بدونم که چجوری میتونم مقدار فیلد UserName که کلید من هست رو پیدا کنم تا بوسیله اون بتونم فیلد تاریخ ثبت نام رو عوض کنم.
ممنون

ASKaffash
یک شنبه 21 تیر 1388, 10:58 صبح
سلام
باید از جدول موقت بنام Inserted درون تریگر استفاده کنید در ضمن باید بیشتر در مورد تریگر مطالعه شود صفحه 54 این لینک :
http://barnamenevis.org/forum/showthread.php?t=106494

raziee
یک شنبه 21 تیر 1388, 13:23 عصر
با تشکر از جناب کفاش.
آقای کفاش به چه روشی میشه به یک فیلد از این جدول موقت دسترسی داشت؟



Create Trigger I_Prs On Person
After Insert AS
Insert Into LogFile Select ´I´ AS LogType,
PrsID ,
GetDate ( ) AS LogDate
From Inserted

در این کد که شما گذاشته بودین PrsID یکی از فیلدهای جدول هست که insert شده؟
آیا درست متوجه شدم؟

raziee
یک شنبه 21 تیر 1388, 15:04 عصر
ممنون از آقای کفاش به خاطر جزوه خوبشون.
مشکلم حل شد.
کد رو به شکل زیر نوشتم:


ALTER TRIGGER tr_CreateDate
ON dbo.tblProfile
AFTER INSERT
AS
Declare @UserName nvarchar(20)
Set @UserName = (Select UserName From Inserted)
UPDATE tblProfile
SET CreateDate = GetDate()
WHERE (UserName = @UserName)