星期五下午這似乎是一個好主意,但我遇到了一些麻煩。我之前沒有使用SQL XML查詢,所以我可能只是做了一件非常愚蠢的事情。基本上我想傳遞一系列字符串來查詢一個表到一個存儲過程。在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)
這是幫助,不再讓例外但它只返回一行? – Liam
您閱讀我的想法! TA! – Liam