不能在T-SQL中检查空字符

本文关键字:字符 检查 T-SQL 不能 | 更新日期: 2023-09-27 18:08:30

我有一个具有以下属性的类:

public char Status{get;set;}

该值传递给T-SQL存储过程以插入到表中。

当没有为该属性赋值时,就会出现问题。它将'0传递给SP。在SP中,我无法确定是否存在值。以下两项检查都失败。

@value = '' OR @value IS NULL 

检查传递参数(@value CHAR(1))是否包含有效值的正确方法是什么?

问题的答案是什么是空字符字面量在TSQL?解决了我的问题。因此,结束这个问题。

不能在T-SQL中检查空字符

char不能为null,因为它是值类型。有些东西将你的Status属性设置为''0'。在调用存储过程之前,应该检查该值。如果找到,发送DBNull。值替换为您的存储过程。

if(Status == ''0')
    command.Parameters.AddWithValue("@value", DBNull.Value);
else
    command.Parameters.AddWithValue("@value", Status);

那么在存储过程中你可以简单地检查

@value IS NULL

如果不能更改代码,则可以在存储过程中检查字符值为0,如下所示:

@value = CHAR(0)