尝试这样的事情
DECLARE @xml XML ='<Audit><Item CreatedDate="0001-01-01T00:00:00.0000000Z" TypeOfData="UserName" PreviousValue="David" NewValue="Harry"></Item></Audit>'
SELECT CreatedDate = T.value('@CreatedDate', 'varchar(100)'),
PreviousValue = T.value('@PreviousValue', 'varchar(100)'),
NewValue = T.value('@NewValue', 'varchar(100)')
FROM @xml.nodes('/Audit/Item') tc (T)
注:还有就是你的样品xml
在一个错误。开始标记(audit
)和结束标记(Audit
)不匹配我已修复它。
更新:从表使用提取XML数据Cross Apply
CREATE TABLE #Audit (audit XML)
INSERT INTO #Audit
VALUES ('<Audit><Item CreatedDate="0001-01-01T00:00:00.0000000Z" TypeOfData="UserName" PreviousValue="David" NewValue="Harry"></Item></Audit>')
SELECT CreatedDate = T.value('@CreatedDate', 'varchar(100)'),
PreviousValue = T.value('@PreviousValue', 'varchar(100)'),
NewValue = T.value('@NewValue', 'varchar(100)')
FROM #Audit
CROSS apply audit.nodes('/Audit/Item') tc (T)
感谢固定我的错误。我需要一个解决方案,我可以直接从表格中提取记录,将值分配给变量,然后从我完成的解析中解析出来。你能帮我吗? – Prasad
@Prasad - 完成.. –
感谢您的回答。有效。我只是有一个查询,我不能直接在我的基础表上使用它?我相信这是行不通的,因为存储在我的基表下的数据是以nvarchar格式存储的。 – Prasad