update [员工信息] set [仓库]=(select (case when [权限].[仓库] is null then '' else [权限].[仓库] end) from [权限] where [ID]=[员工信息].[权限])提示:不能将 null 值插入列‘仓库’,表‘dbo.员工信息’;列不允许有 null 值。列 仓库 是 nvarchar(20) not null default ''.请问怎么才能用sql语句成功更新呢?谢谢。
调试欢乐多
[员工信息]
set
[仓库]=isnull([权限].[仓库],'')
from
[权限]
where
[ID]=[员工信息].[权限])
[员工信息]
set
[仓库]=isnull((select (case when [权限].[仓库] is null then '' else [权限].[仓库] end)
from
[权限]
where
[ID]=[员工信息].[权限]),'')
把 nvarchar(20) not null default --not null改成null就行了!
--所以:得先把这个字段的非空属性(NOT NULL) 修改为可空属性(NULL)
--再去执行插入操作,操作过后,还原该字段为非空属性即可!
update
[员工信息]
set
[仓库]=isnull([权限].[仓库],'')
from
[权限]
where
[ID]=[员工信息].[权限])
这样只有找到匹配记录时才替换