Sql server2012存储过程参数传递null值,如何判定这个参数是null

存储过程写
if @para is null
Begin
select语句条件相当于where 1=1
End
else
Select语句
为什么参数传递null值时没有返回任何结果,print @para也是空,参数给定一个之正常.不能用@para is null或者isnull(@para,'')=''还能用什么方法判定@para是传递null值,这是bug吗

你的返回结果是什么意思?
当@para传入null时,print当然为空的了。
判断一个变量或字段值是否为空就是用is null来判断的:如果变量或字段值为null结果为true, 否则为false;而isnull则是在第一个参数值为null时返回第二个参数值,如果第一个参数值不为null则直接返回第一个参数值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-08
ISNULL(@para,'') = ''

@para IS NULL追问

都不好用呢

追答

if ISNULL(@para,'') = ''
Begin
select语句条件相当于where 1=1
End
else
Select语句

追问

知道什么问题了,where @para is null造成不能查询的,谢谢!

追答

采纳吧!

本回答被提问者和网友采纳
第2个回答  2015-04-16
你确定传的是NULL而不是'NULL'?
第3个回答  2015-04-16
2012可以调试了,你调试一下存储过程。