update a set a.fprovince=(case a.fprovince when '' then isnull(b.fprovince,' ') end) from tb_cl a,tb_kh b where a.fkhh=b.fkhh因为表tb_cl中province默认是not null,而tb_kh中默认是null,所以在update时假如tb_kh中有空值的province,出现下面的提示:服务器: 消息 515,级别 16,状态 2,行 1
无法将 NULL 值插入列 'fprovince',表 'svw.dbo.tb_cl';该列不允许空值。UPDATE 失败。
语句已终止。但是在语句中我已经用isnull来判断了,没有直接给它赋值。
而这样用却可以:
update a set a.fprovince=isnull(b.fprovince,' ') from tb_cl a,tb_kh b where a.fkhh=b.fkhh请高手帮忙指点下上面那句错在哪里???
无法将 NULL 值插入列 'fprovince',表 'svw.dbo.tb_cl';该列不允许空值。UPDATE 失败。
语句已终止。但是在语句中我已经用isnull来判断了,没有直接给它赋值。
而这样用却可以:
update a set a.fprovince=isnull(b.fprovince,' ') from tb_cl a,tb_kh b where a.fkhh=b.fkhh请高手帮忙指点下上面那句错在哪里???
解决方案 »
- 请问设置什么可以消除错误提示?
- 求一分类汇总SQL的写法
- 还是那个触发器的问题,始终不明白,怎么有的没有执行啊?
- 请赐教:双机热备份上的SQL虚拟服务器如何卸载,卸载后群集管理器会不会受到影响。
- 求助!!关于词语相似度计算
- 帮家帮我看看这个SQL语句哪出错了,急急!!!!!
- sql2005提供了读取xml字段节点的功能?如果xml以文件形式存放磁盘,有什么方法读得更快?
- 如何修改字段的默认值
- 请教:语句CHECK((SEX IS 'M') OR (SEX IS 'F'))的语法错误?正确写法?
- vb 对数据库加密(access,oracle等)
- 高手救命啊~~~进来看看一个替换值的问题~~
- 愁死我了,(一个函数n参数)
else a.fprovince
end) from tb_cl a,tb_kh b where a.fkhh=b.fkhh
set a.fprovince=isnull(b.fprovince,' ')
from tb_cl a,tb_kh b
where a.fkhh=b.fkhh
and a.fprovince=''
(case a.fprovince when '' then isnull(b.fprovince,' ') else null end)所以当a.fprovince <> ''的时候,你的语句就试图更新为null