SQL Server – 是否可以在行更新之前返回现有列值?
栏目: 数据库 · SQL Server · 发布时间: 5年前
内容简介:翻译自:https://stackoverflow.com/questions/13996748/sql-server-is-it-possible-to-return-an-existing-column-value-before-a-row-upda
我正在编写一个查询,用于更新论坛帖子(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
可以修改此查询以在更新之前返回旧分数吗?
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
翻译自:https://stackoverflow.com/questions/13996748/sql-server-is-it-possible-to-return-an-existing-column-value-before-a-row-upda
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Flutter 添加到现有项目
- 现有iOS工程引入Flutter
- 为现有 iOS项目集成 Flutter
- QLoo推出用于现有服务的GraphQL接口
- 观点 | 激励循环——加密算法如何实际修复现有激励循环
- 如何保护你的 Python 代码(一):现有加密方案
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP与MySQL权威指南
吴津津、田睿、李云、刘昊 / 机械工业出版社华章公司 / 2011-10 / 118.00元
PHPChina官方出品,Discuz!创始人戴志康、UCHome创始人李国德、ThinkPHP创始人刘晨、PHPCMS项目负责人王参加等联袂推荐。 本书是目前为止最全面的关于PHP与MySQL开发技术的书籍之一,系统而全面地讲解了PHP与MySQL技术的方方面面,适合初中级的PHP程序员系统地学习;本书也是目前为止首本系统而深入地讲解UCenter、Discuz!、UCHome、ShopN......一起来看看 《PHP与MySQL权威指南》 这本书的介绍吧!
图片转BASE64编码
在线图片转Base64编码工具
UNIX 时间戳转换
UNIX 时间戳转换