У меня есть эти 2 таблицы:Trigger обновить конкретную ячейку другой таблицы
dbo.Restaurants(rid,name,phone,area,address,zip,desc,foodtype,avgRating)
и
dbo.Reviews(rev_id,rest_id,user_id,taste, service,environment,value,average,comment)
Я пытался создать триггер, который делает это: , когда строка на dbo.Reviews удаляется, обновляется или вставляется, триггер затем вычисляет новый средний рейтинг для ресторана следующим образом:
select rid, round(avg(average)*20,0) as 'average'
from dbo.Restaurants inner join dbo.Reviews on rid=rest_id
group by rid
И затем обновляет прогиб-камеру на dbo.Рестораны, где dbo.Restaurants.rid = dbo.Reviews.rest_id.
До сих пор я придумал это:
CREATE TRIGGER [defAverage]
ON [dbo].[Reviews]
AFTER UPDATE, DELETE, INSERT
AS
BEGIN
select rid, round(avg(average)*20,0) as 'average'
from Restaurants inner join Reviews on rid=rest_id
group by rid
order by 'average' desc
SET NOCOUNT ON
UPDATE [dbo].[Restaurants]
SET [dbo].[Restaurants].avgRating = 'average'
where [dbo].[Reviews].rest_id = [dbo].[Restaurants].rid
END
который, очевидно, не работает, иначе я бы здесь не было. Я использую Visual Studio Ultimate 2013, который использует SQL Server Tools 2012.
Заранее благодарим за ваше время и предложения.