您的位置:首页 > 数据库

SQL SERVER中关于NULL应注意的问题

2007-10-24 20:56 211 查看
NULL是个比较特殊的类型,顾名思义就是什么都没有,什么都不是(通俗说法)。所以在使用它时需要注意一些,以下是在工作中碰到的一些问题和分析:

1)当某个字段FIELD1允许为NULL值时且默认值为NULL时,如果要更新它时可能会用到update tablename set FIELD1 = FIELD1 + VALUE,看上去没有错,其实如果某记录的FIELD1的值为NULL,那么永远都不会被更新,所以首先要判断是否为NULL,不为NULL则采用以上语句更新,否则则先将值直接更新FIELD1字段。

结论:NULL和任何值相加都为NULL

2)理论上加入A记录的B字段值为'AAA',假如要筛选B字段值不为NULL的字段用SELECT * FROM tablename WHERE B <> NULL进行查询,其实NULL在SQL语句中是不能用"=,<>,>,<"来比较的。所以执行的结果【在查询分析器中或在其它IDE中】是错误的。正确的语法应是:SELECT * FROM tablename WHERE B is not NULL或者SELECT * FROM tablename WHERE B is NULL。

结论:用SQL语句来比较NULL值要使用IS,IS NOT。但在存储过程中可以使用=,<>来比较,我想可能是存储过程会自动将此语法改为正确的比较语法。但强烈建议大家以后还是使用正确的比较方法,用IS,IS NOT来比较NULL值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: