PDA

View Full Version : ایجاد trigger درصورت update یک فیلد خاص



ayani2002
سه شنبه 13 دی 1390, 09:43 صبح
سلام

من یک جدول دارم که دارای تعدادی زیادی فیلد است من به یک trigger احتیاج دارم که اگر یک فیلد خاص (فیلد 11) جدول به 1 update شده است trigger انجام شود .چطوری می تونم این کار را بکنم؟با تشکر از راهنمایی شما

tazarvmmr
سه شنبه 13 دی 1390, 10:01 صبح
Create trigger [dbo].[tr_TableName]
On TableName
After Update

AS

Begin
if Update(MyFieldName) (...do what you want here...)

End

baktash.n81@gmail.com
سه شنبه 13 دی 1390, 10:24 صبح
سلام

تو SQL نمی تونی Fire شدن ترگیر رو روی یک فیلد خاص مدیریت کنی ... اما می تونی بعد از Fire شدن فیلدتو چک کنی که update شده یا نه ...

IF Update(Fieldname)
begin

end

نکته ای که باید بهش توجه کنی اینه که اگه اسم این فیلد تو دستور Update باشه از نظر SQL این فیلد Update شدهزیاد مهم نیست که واقعا مقدارش تغییر کرده یا نه ...

shohreh
سه شنبه 13 دی 1390, 16:01 عصر
سلام
تريگر را به صورتي بايد بنويسيد كه شرط مورد نظرتان در دستورات قرار بگيرد مانند مثال زير . چون تريگر براي Insert,Update در هر صورت اجرا مي شود.

create trigger trg_update
on TableName
After Update,Insert
As
Update TableName
Set FieldName=Anything
From TableName t join Inserted I on
t.KeyField=I.KeyField
WHere Field11=1
Go