有点怪的问题……
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   
 请高手帮忙指点下上面那句错在哪里???
------解决方案--------------------update a set a.fprovince=(case a.fprovince when  ' ' then isnull(b.fprovince, '  ')  
 else a.fprovince 
 end) from tb_cl a,tb_kh b where a.fkhh=b.fkhh