私は xml 形式のメッセージのリストを持っています。OpenXML を使用してメッセージ ID をストアド プロシージャに送信し、ステータスを「A」ステータスに更新したいと考えています。ここでのコーディングは次のようになります。
XML サンプル形式:
<Message>
<MessageID>17</MessageID>
<MessageID>16</MessageID>
<MessageID>15</MessageID>
</Message>
ストアド プロシージャの場合:
exec sp_xml_preparedocument @idoc OUTPUT, @XmlMessagesItems
方法 1:
UPDATE SECMSG_TO
SET SECMSG_TO.Status='A'
FROM OPENXML (@idoc, '/Message',2)
with ( MessageID INT) ox
WHERE
SECMSG_TO.MessageID = ox.MessageID
または方法 2:
UPDATE SECMSG_TO
SET SECMSG_TO.Status = 'A'
WHERE SECMSG_TO.MessageID IN (SELECT *
FROM OPENXML (@idoc, '/Message',2)
WITH ( MessageID INT)
)
しかし、どちらの方法でも、最初のメッセージは17番を意味するだけで更新でき、他のメッセージは影響を受けていません。すべてのリストを完全に更新する方法を教えてください。
ありがとう。