0
的特定細胞我有這2個表:觸發更新另一個表
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.Restaurants中的avgRating單元,其中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.
在此先感謝您的時間和建議。