我試圖從SQL Server讀取XML文件。我認爲這是與命名空間的問題.. 這是我簡單的XML的例子:SQL Server命名空間
<?xml version="1.0"?>
<ArrayOfStatistica xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/LiveUpdateWS">
<Statistica>
<BuildFinale>68</BuildFinale>
<BuildIniziale>1</BuildIniziale>
<DataInserimento>2014-11-21T09:34:25.387</DataInserimento>
<IdCliente>-1</IdCliente>
<IdOperazione>4</IdOperazione>
<IdRivenditore>-1</IdRivenditore>
<IdTipoProdotto>-1</IdTipoProdotto>
<IdUtente>2</IdUtente>
<IdVersione>3</IdVersione>
</Statistica>
<Statistica>
<BuildFinale>68</BuildFinale>
<BuildIniziale>1</BuildIniziale>
<DataInserimento>2014-11-21T09:37:43.84</DataInserimento>
<IdCliente>-1</IdCliente>
<IdOperazione>4</IdOperazione>
<IdRivenditore>-1</IdRivenditore>
<IdTipoProdotto>-1</IdTipoProdotto>
<IdUtente>2</IdUtente>
<IdVersione>3</IdVersione>
</Statistica>
</ArrayOfStatistica>
用下面的代碼:
;WITH XMLNAMESPACES ('http://schemas.datacontract.org/2004/07/LiveUpdateWS"' AS ArrayOfStatistica)
SELECT
(SELECT Child.value('(IdStatistica)[1]', 'bigint')),
(SELECT Child.value('(IdUtente)[1]', 'int')),
(CASE WHEN Child.value('(IdRivenditore)[1]', 'int') = -1 THEN NULL else (SELECT Child.value('(IdRivenditore)[1]', 'int')) end),
(CASE WHEN Child.value('(IdCliente)[1]', 'int') = -1 THEN NULL else (SELECT Child.value('(IdCliente)[1]', 'int')) end),
(SELECT Child.value('(DataInserimento)[1]', 'datetime')),
(CASE WHEN Child.value('(IdTipoProdotto)[1]', 'int') = -1 THEN NULL else (SELECT Child.value('(IdTipoProdotto)[1]', 'int')) end),
(SELECT Child.value('(IdVersione)[1]', 'int')),
(SELECT Child.value('(BuildIniziale)[1]', 'bigint')),
(SELECT Child.value('(BuildFinale)[1]', 'bigint')),
(SELECT Child.value('(IdOperazione)[1]', 'int'))
FROM
@xmlfile.nodes('ArrayOfStatistica/Statistica') AS N(Child)
我沒有得到任何選擇值。
我應該如何設置這個XML文件的命名空間? 如果我刪除了XML命名空間的線(http://schemas.datacontract.org/2004/07/LiveUpdateWS 「的xmlns:I =」 http://www.w3.org/2001/XMLSchema -instance「>) 一切工作正常
爲什麼你有'(SELECT Child.value(...))'而不是僅僅是'Child.value(...)'?你爲什麼覺得你需要命名空間? (我的意思是,如果沒有它,那就去沒有它?) – 2014-11-24 17:34:14