存储过程中,Select给变量赋值时,如果查询的值为NULL,则不会给变量赋值NULL

huangbochn 2016-10-14 10:15:49
如下语句:
Select @SequenceNo=max(SequenceNo) From ProductionSchedule_Task Where SequenceNo<10
如果ProductionSchedule_Task 表中,SequenceNo全部都大于10,那理论上max(SequenceNo)是NULL,但是很奇怪的,@SequenceNo还是原来的值,并不是为NULL.

请指教,谢谢!


另外,因为无人回复,不能结贴,所以,麻烦一下,如果您有空,帮我在这个帖子里回复下,谢谢.
http://bbs.csdn.net/topics/392024161
...全文
570 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangbochn 2016-10-14
  • 打赏
  • 举报
回复
你可以在这个语句赋值前,先 set @var = NULL 一下 谢谢您的指导
卖水果的net 版主 2016-10-14
  • 打赏
  • 举报
回复
但是很奇怪的,@SequenceNo还是原来的值,并不是为NULL. sql server 就是这个特性,如果某个变量原来有值,你做了一个查询,给他赋值,就如同你现在一样,没有找到数据,则保留原来的值 ; 你可以在这个语句赋值前,先 set @var = NULL 一下;

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧