假设我有以下XML:
<root><test1>Hello</test1><test2>World</test2></root>
在我的存储过程中,我声明了一个这样的变量:
DECLARE @Stuff nvarchar(50)
如果XML以
的形式传递到存储过程中@MyXml
解析传入的XML以获取元素test1
中保存的值的语句是什么?
我正在使用SQL Server 2008
答案 0 :(得分:2)
您必须使用xml type而不是nvarchar类型,但转换很容易。然后你可以像这样查询:
DECLARE @Stuff nvarchar(MAX) = '<root><test1>Hello</test1><test2>World</test2></root>'
DECLARE @Xml xml = @Stuff
SELECT @Xml.value('(/root/test1)[1]', 'nvarchar(50)') AS Test1
有关详细信息,请参阅MSDN page on xml Data Type Methods。