View Full Version : جدول Deleted ,Inserted در تریگر
elena
پنج شنبه 07 آبان 1394, 22:06 عصر
آیا جدول های Inserted و Deleted قبل از ایجاد تریگر در حافظه وجود دارند؟ راستش در مورد تریگرها جستجو کردم ولی زمانی که یک تریگر می نویسیم که وقتی رکوردی در جدول 1 ذخیره می شود این رکورد از جدول 2 کم شود دقیقا چه اتفاقی می افتد؟
parsdarab
پنج شنبه 07 آبان 1394, 22:39 عصر
سلام
inserted در واقع همان رکوردیه که عملیات مورد نطر روی ان اتفاق افتاده است
مثلا شما بک تریگر می نویسید . وقتی رکوردی در جدول مورد نظر درج ویرایش حذف شد در ازای این رکورد یک عکس العمل در سایر جدول ها اتفاق بیفتد.
alter trigger [dbo].[table1insert] on [dbo].[Table1]
for insert
as declare @name nvarchar(100),@famil nvarchar(100),@traffic datetime,@id int
select @name=i.fname from inserted i;
select @famil=i.lname from inserted i;
--select @traffic=i.trafficDay from inserted i;
select @traffic=max(trafficDay) from Table1 where lname=@famil
select @id=id from Table2 where lname=@famil
if(@id =0 or @id='' or @id is null)
insert into Table2(fname,lname,traffic)values(@name,@famil,@tr affic)
else
update Table2 set traffic=@traffic where id=@id
مثلا تریگر فوق میگه وقتی روی table1 رکوردی درج شد اطلاعات رکورد درج شده را بگیر و یک محاسبه انجام بده بعد یه سرچ بزن روی table2 بر اساس فامیل اگر رکورد وجود داشت update کن وگرنه insert
okey
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.