星期五下午这似乎是一个好主意,但我遇到了一些麻烦。我之前没有使用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