我有這樣的SQL:如何從另一臺做的SQL Server CE表更新
UPDATE JOBMAKE SET WIP_STATUS='10sched1'
WHERE JBT_TYPE IN (SELECT JBT_TYPE FROM JOBVISIT WHERE JVST_ID = 21)
AND JOB_NUMBER IN (SELECT JOB_NUMBER FROM JOBVISIT WHERE JVST_ID = 21)
它的工作,直到我把它變成一個參數化查詢:
UPDATE JOBMAKE SET WIP_STATUS='10sched1'
WHERE JBT_TYPE IN (SELECT JBT_TYPE FROM JOBVISIT WHERE JVST_ID = @jvst_id)
AND JOB_NUMBER IN (SELECT JOB_NUMBER FROM JOBVISIT WHERE JVST_ID = @jvst_id)
Duplicated parameter names are not allowed. [ Parameter name = @jvst_id ]
我想這(我認爲會在SQL SERVER 2005工作 - 雖然我還沒有嘗試過):
UPDATE JOBMAKE
SET WIP_STATUS='10sched1'
FROM JOBMAKE JM,JOBVISIT JV
WHERE JM.JOB_NUMBER = JV.JOB_NUMBER
AND JM.JBT_TYPE = JV.JBT_TYPE
AND JV.JVST_ID = 21
There was an error parsing the query. [ Token line number = 3,Token line offset = 1,Token in error = FROM ]
所以,我可以寫動態SQL而不是使用參數或者我可以傳入2個參數,但有人知道如何以更好的方式做到這一點?
科林
已更新的答案涵蓋了問題的第二部分。 – 2009-08-24 20:58:21