SQL Server – 是否可以在行更新之前返回现有列值?
发布时间:2020-05-28 15:26:58 所属栏目:MsSql 来源:互联网
导读:我正在编写一个查询,用于更新论坛帖子(ForumPosts)的用户投票(ForumVotes).用户可以向上或向下投票(投票将等于1或-1).此问题特定于更改用户的投票,因此ForumVotes表中已存在投票记录. ForumPosts表存储每个帖子的总分,所以我需要保持这个字段同步.要重新计算
|
我正在编写一个查询,用于更新论坛帖子(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 可以修改此查询以在更新之前返回旧分数吗? 解决方法尝试OUTPUT子句:declare @previous table(newscore int,Oldscore int,postFK int,userFK int) UPDATE ForumVotes SET score = @newVote OUTPUT inserted.score,deleted.score,deleted.postFK,deleted.userFK into @previous WHERE postFK = @postID AND userFK = @userID select * from @previous (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- sql – 选择子查询里面的case语句何时?
- mysql 查看当前使用的配置文件my.cnf的方法(推荐
- sql-server – sp_who2 BlkBy正在等待命令的休眠
- SQL SERVER 2008 CTE生成结点的FullPath
- 使用Linq to SQL进行多线程处理
- entity-framework – 如何在实体模型中隐藏数据库
- SQL Server 2012 getClob():不支持从varchar(nv
- sql-server – 在SQL Server中使用带有动态查询的
- sql – 奇怪的错误XML解析:第1行,字符2038,非法
- SQL Server CONVERT()函数用法小结
热点阅读
