我的更新声明一直在失败。
Update dbo.Marker
set MarkId= case
when Ninja = 55 and cast(Tometo as varchar) = 0031A then 22
else MarkId
end
MarkId的数据类型是int数据类型, Ninja是int数据类型,Tometo是varchar(9)。
这是我得到的错误
Msg 245,Level 16,State 1,Line 48 将varchar值'031A'转换为数据类型int时,转换失败。
答案 0 :(得分:2)
您在0031A附近缺少报价
Update dbo.Marker
set MarkId= case
when Ninja = 55 and cast(Tometo as varchar) = '0031A' then 22
else MarkId
end
要查找导致问题的行,请在查询
下方运行select case
when Ninja = 55 and cast(Tometo as varchar) = '0031A' then 22
else MarkId
end
from dbo.Marker
然后找出哪些行返回非整数值。我无法帮助您提供更多数据。