update xy.NewYMJT.dbo.DeviceInformation
set StationStatus=case
(
select top 1 b_SenState from TB_KJ139_SensorState_DATA
inner join xy.NewYMJT.dbo.DeviceInformation a on
Pk_i_SenID=a.StationNumber and a.MineNumber='18'
) when 0 then 3 when 1 then 5 end
where MineNumber='18'
set StationStatus=case
(
select top 1 b_SenState from TB_KJ139_SensorState_DATA
inner join xy.NewYMJT.dbo.DeviceInformation a on
Pk_i_SenID=a.StationNumber and a.MineNumber='18'
) when 0 then 3 when 1 then 5 end
where MineNumber='18'
update A
set StationStatus=case
(
select b_SenState from TB_KJ139_SensorState_DATA
where Pk_i_SenID=A.StationNumber and A.MineNumber='18'
) when 0 then 3 when 1 then 5 end
FROM xy.NewYMJT.dbo.DeviceInformation A
where A.MineNumber='18'
--报错数字 名称 'xy.NewYMJT.dbo.DeviceInformation' 包含的前缀数目超过了最大值。最大值为 3。
FROM 表 别名
可以按照1楼的修改,但我觉得,如果你的子查询返回了多值的话,可能你的逻辑要重新考虑了
加TOP1是不会抱错,但是否就是你想要的呢?