Books Onlineエントリに基づいているため、2回目の試行は機能しません。更新用
、SQLCEではFROM
は許可されていません 更新ステートメントの句。
テストするSQLCompactEditionがありませんが、これでうまくいく可能性があります:
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
)
JOBMAKEをJMとしてエイリアスして、クエリを少し短くできる可能性があります。
編集
コメントで提起された質問(JOBVISITの値を使用してJOBMAKEの値を更新する方法)に関連しているため、SQL CEの制限について100%確信が持てません。外部クエリでEXISTS句の内容を参照しようとすることは、私が遭遇したSQLダイアレクトではサポートされていませんが、試すことができる別の方法があります。これはテストされていませんが、SQL CEが相関サブクエリをサポートしているように見えるため、機能する可能性があります。
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
)
ただし、制限があります。 JOBVISITの複数の行がJOBMAKEの各行に対して再調整されると、このクエリは失敗します。これが機能しない場合(または、内側のクエリを外側の行ごとに1つの行に直接制限できない場合)、実行することができます。カーソルを使用した行ごとの更新。