Sua segunda tentativa não funciona porque, com base na entrada Books On-Line para ATUALIZAÇÃO , o SQL CE não permite um
FROM
cláusula em uma instrução de atualização. Eu não tenho o SQL Compact Edition para testá-lo, mas isso pode funcionar:
UPDATE JOBMAKE
SET WIP_STATUS = '10sched1'
WHERE EXISTS (SELECT 1
FROM JOBVISIT AS JV
WHERE JV.JBT_TYPE = JOBMAKE.JBT_TYPE
AND JV.JOB_NUMBER = JOBMAKE.JOB_NUMBER
AND JV.JVST_ID = @jvst_id
)
Pode ser que você possa alias JOBMAKE como JM para tornar a consulta um pouco mais curta.
EDITAR
Não tenho 100% de certeza das limitações do SQL CE, pois estão relacionadas à questão levantada nos comentários (como atualizar um valor no JOBMAKE usando um valor do JOBVISIT). A tentativa de fazer referência ao conteúdo da cláusula EXISTS na consulta externa não é suportada em nenhum dialeto SQL que encontrei, mas há outro método que você pode tentar. Isso não foi testado, mas pode funcionar, pois parece que o SQL CE suporta subconsultas correlacionadas:
UPDATE JOBMAKE
SET WIP_STATUS = (SELECT JV.RES_CODE
FROM JOBVISIT AS JV
WHERE JV.JBT_TYPE = JOBMAKE.JBT_TYPE
AND JV.JOB_NUMBER = JOBMAKE.JOB_NUMBER
AND JV.JVST_ID = 20
)
Há uma limitação, no entanto. Esta consulta falhará se mais de uma linha no JOBVISIT for reajustada para cada linha no JOBMAKE. Se isso não funcionar (ou você não pode limitar diretamente a consulta interna a uma única linha por linha externa), seria possível realizar uma atualização linha por linha usando um cursor.