嘗試這樣的事情
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