金曜日の午後、これは素晴らしいアイデアのように思えましたが、少し問題があります。私は以前に SQL XML クエリを使用したことがないので、信じられないほど愚かなことをしただけかもしれません。基本的に、一連の文字列を渡して、テーブルをストアド プロシージャにクエリしたいと考えています。
これについて少し考え、CSV を使用することを検討した後、XML を使用してこれを行うことにしました。したがって、私の XML は次のようになります。
<Root>
<string>value</string>
<string>value</string>
<string>value</string>
<string>value</string>
</Root>
これを XML 値型としてストアド プロシージャに渡します。
CREATE PROCEDURE usp_UpdateHotelImages
-- Add the parameters for the stored procedure here
@hotelID int,
@imageIDs xml
AS
BEGIN
そのため、 XMLを文字列のテーブルに分割したいと考えています。
私のSQLは次のようになります。
SELECT Child.value('(string)[1]', 'varchar(200)')
FROM @imageIDs.nodes('/Root/') AS N(Child))
しかし、エラーメッセージが表示され続けますXQuery [nodes()]: Syntax error near '<eof>', expected a "node test".
私はここで信じられないほど愚かなことをしているかもしれないので、どんな助けも感謝して受け取ります.
アップデート
役立つように、それを単一のクエリに分割しました。
DECLARE @imageIDs xml
SET @imageIDs = '<Root>
<string>value</string>
<string>value</string>
<string>value</string>
<string>value</string>
</Root>'
SELECT Child.value('(string)[1]', 'varchar(200)')
FROM @imageIDs.nodes('/Root/') AS N(Child)