T-SQL: 检查变量是否为空。

6
我想知道是否有一种方法可以检查变量@varChar是否为NULL并且变量@bit是否为0
我的尝试:
if ISNULL(@varChar, false) and (@bit = 0) 
begin
    RAISERROR ('varchar was not specified', 16,1);
end

我的问题是ISNULL(check_if_null, replacement_value)不像这样工作,我找不到替代品。

2个回答

14

你可以使用 IS NULL

IF @varCHAR IS NULL AND @bit = 0
BEGIN
    RAISERROR ('varchar was not specified', 16,1);
END

另一种方法是:

DECLARE @varCHAR VARCHAR(MAX) = NULL;

IF ISNULL(@varCHAR,'false') = 'false' AND @bit = 0
    RAISERROR ('varchar was not specified', 16,1);

第一种解决方案检查 NULL。第二种解决方案检查数据中可能出现或可能不出现的“魔法值”('false')。最佳实践是避免使用魔法值。 - HABO
@HABO 我同意我们应该尽可能避免使用“神奇”值,首选方法是最好的。我只是想向OP展示使用ISNULL(@varChar, false)是可行的。 - Lukasz Szozda

1
使用IS NULL在检查一个值是否为null时。
IF @varChar IS NULL and @bit = 0 
    RAISERROR ('varchar was not specified', 16,1);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接