razeghaik1
پنج شنبه 16 شهریور 1391, 11:20 صبح
با عرض سلام خدمت دوستان عزیز
من یک جدول دارم با نام temp که شامل فیلد های زیر است:
id,un,bid_fk,model,price,number
و یک جدول با نام basket_buy که شامل فیلد های زیر است:
id,un,total_price,confirm_,sent,delivered
حالا من می خوام یه تریگر بنویسم که وقتی یک رکورد وارد جدول temp شد اگر این رکورد وارد شده دارای یوزر نیمی (un) است که برای اولین بار وارد جدول temp شده است فیلد های un,price رو از جدول temp گرفته و در جدول basket_buy در فیلدهای un,total_price ذخیره کند(در واقع یک رکورد جدید در جدول basket_buy ذخیره می شود).
و در صورتی که این یوزرنیم(un) قبلا در جدول temp وجود دارد به جای عمل Insert در جدول basket_buy عمل آپدیت را انجام دهد.بدین شکل که جمع ستون های price را انجام دهد به شرط اینکه مربوط به فلان یوزرنیم (un) باشد.
البته خودم یه چیزی نوشتم اما دقیق کار نمی کنه و دارای اشکلاتی است که نمی دونم مشکل از کجاست.
دوستان اگه لطف کنند و کمکی کند بسیار ممنون می شم.
مرسی
create trigger basketbuy_trigger_insert
on temp
after insert
as
declare @un nvarchar(200)
declare @total_price int
declare @total_price1 int
set @un=(select un from inserted)
set @total_price=(select price from inserted)
set @total_price1=(select sum(price) from temp where un=@un)
if not exists((select count(un) from basket_buy where un=@un))
insert into basket_buy(un,total_price) values(@un,@total_price)
if exists((select count(un) from basket_buy where un=@un))
update basket_buy set total_price=@total_price1 where un=@un
من یک جدول دارم با نام temp که شامل فیلد های زیر است:
id,un,bid_fk,model,price,number
و یک جدول با نام basket_buy که شامل فیلد های زیر است:
id,un,total_price,confirm_,sent,delivered
حالا من می خوام یه تریگر بنویسم که وقتی یک رکورد وارد جدول temp شد اگر این رکورد وارد شده دارای یوزر نیمی (un) است که برای اولین بار وارد جدول temp شده است فیلد های un,price رو از جدول temp گرفته و در جدول basket_buy در فیلدهای un,total_price ذخیره کند(در واقع یک رکورد جدید در جدول basket_buy ذخیره می شود).
و در صورتی که این یوزرنیم(un) قبلا در جدول temp وجود دارد به جای عمل Insert در جدول basket_buy عمل آپدیت را انجام دهد.بدین شکل که جمع ستون های price را انجام دهد به شرط اینکه مربوط به فلان یوزرنیم (un) باشد.
البته خودم یه چیزی نوشتم اما دقیق کار نمی کنه و دارای اشکلاتی است که نمی دونم مشکل از کجاست.
دوستان اگه لطف کنند و کمکی کند بسیار ممنون می شم.
مرسی
create trigger basketbuy_trigger_insert
on temp
after insert
as
declare @un nvarchar(200)
declare @total_price int
declare @total_price1 int
set @un=(select un from inserted)
set @total_price=(select price from inserted)
set @total_price1=(select sum(price) from temp where un=@un)
if not exists((select count(un) from basket_buy where un=@un))
insert into basket_buy(un,total_price) values(@un,@total_price)
if exists((select count(un) from basket_buy where un=@un))
update basket_buy set total_price=@total_price1 where un=@un