我正在编写一个查询,用于更新论坛帖子(ForumPosts)的用户投票(ForumVotes).用户可以向上或向下投票(投票将等于1或-1).此问题特定于更改用户的投票,因此ForumVotes表中已存在投票记录.
ForumPosts表存储每个帖子的总分,所以我需要保持这个字段同步.要重新计算总分,我需要在添加新投票之前先减去旧投票,因此我需要在更新用户的投票记录之前获得旧投票.
我知道我可以使用2个查询执行此操作,但我想知道是否可以(在sql Server 2008中)UPDATE在执行更新之前返回列的值?
这是一个例子:
TABLE ForumPosts ( postID bigint,score int,... etc ) -- existing vote is in this table: TABLE ForumVotes ( postFK bigint,userFK bigint,score int )
UPDATE ForumVotes SET score = @newVote WHERE postFK = @postID AND userFK = @userID