惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
The Cloudflare Blog
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
Jina AI
Jina AI
V
V2EX
罗磊的独立博客
V
Visual Studio Blog
A
About on SuperTechFans
IT之家
IT之家
P
Proofpoint News Feed
B
Blog
博客园 - Franky
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog

博客园 - peace

MYSQL分页存储过程及事务处理 审批流设计方案的探究 WEB项目(B/S系统)打包安装(总结篇) 文件上传之断点续传方案 再次分享一个多选文件上传方案 FLEX4.0开发流媒体视频播放器(总结篇) 告别ADO.NET实现应用系统无缝切换的烦恼(总结篇) SQL SERVER行转列应用小结 SQL SERVER函数——表值函数的处理 纠正网上流传的SQL取某一时间的当月第一天和最后一天的时间写法 SQL SERVER游标操作 告别.NET生成报表统计图的烦恼 发现联想手机P630型号的一个严重的系统Bug thinkpad T400型号安装server2003系统驱动共享 分享一个.NET版的多选文件上传操作示例 一个简单的httpModule应用 JS给页面标签添加事件(或超链接链接) 让默认焦点的按钮无虚框(又来无聊了) 利用ASP.NET日期控件制作“会议日程安排”(贴首页过把瘾)
SQL SERVER里的赋值机制闲聊
peace · 2011-03-02 · via 博客园 - peace

   纯属闲谈,没什么好写,以前也碰过在SQL里连续赋值的问题,今天自己处理个东西也碰上,举个简单的例子来说吧,用户表里有两个时间字段(CurrentDate,LastDate分别代表当前登录时间和上次登录时间),一个是上次登录时间,一个是当前登录时间,要求用户登录后记录当前更新时间,同时更新上次登录时间,当然第一次登录时上次登录时间是为空的,第二次登录应该是有值的。很简单第二次登录时先把 第一次登录的CurrentDate的值赋值给LastDate,然后给CurrentDate赋值getdate()就可以了。问题是这条更新语句怎么写最恰当。可能最容易想到的是这样的

   declare @date datetime

   select @date=CurrentDate from users where ...

   update users set LastDate = @date,CurrentDate=getdate() where ...

       写到第三句基本上应该能想到连续赋值了,一般的计算机语言都是从右到左赋值的,多表达式的连续赋值计算优先级也是从右至左的,在SQL SERVER里也一样的,明白了这点,最佳的方式应该是这样写

  update users set CurrentDate=getdate() , LastDate = CurrentDate where ...

  算是啰嗦下~~