记录要更新
select *
from Event_Measurable em
join Observation_Measurable om on em.Event_GUID = om.Event_GUID
where observation_guid in (8786975, 285886, 85976, 786976)
如下更新这些记录:
set observation_value_text = '.',
observation_value_numeric = NULL,
om.status = 'D',
em.status = 'D',
我需要帮助来更新和设置上述查询结果中的值。有什么可以帮助我的。我试图更新表,但是失败了。
答案 0 :(得分:0)
尝试一下:
update X set
observation_value_text = '.'
, observation_value_numeric = NULL
, om.status = 'D'
, em.status = 'D'
from
(
select
*
from Event_Measurable em
join Observation_Measurable om on em.Event_GUID = om.Event_GUID
where observation_guid in (8786975, 285886, 85976, 786976)
) X
让我知道它是否有效吗?
答案 1 :(得分:0)
您的set
列表引用了多个表:这是无效的,因为只能用一个语句更新一个表。您需要运行2条update
语句,因此您可以在第二个join
中重复update
,或者首先将结果放入临时表中,然后join
放入实际的-待更新表。您可能希望将整个事情放到事务中,以便能够回滚错误。参见this reference。