1
我試圖將數據從一個相當大的xml文件導入到SQL Server。經過一些在線搜索後,我決定使用OpenXML。查詢我至今是如何使用OpenXML訪問xml中的嵌套元素
DECLARE @doc INT
DECLARE @xml XML
SELECT @xml = evnt
FROM OPENROWSET (BULK 'c:\archive.xml', SINGLE_BLOB) AS Import(evnt)
EXEC sp_xml_preparedocument @doc OUTPUT, @xml
SELECT *
FROM OPENXML(@doc, '/Events/eventData/event', 2)
WITH (
id varchar(max)
)
EXEC sp_xml_removedocument @doc
這樣,我能得到「事件」中所列出的元素,但我怎麼會得到一個元素,從「事件」多了一個層次了。 例如,我將如何獲取下面的'CustId'標籤?主要需要
<event>
<custromAttribute>
<CustId>...
「事件」內的所有項目因此路徑不能被改變。 其他任何方法也會很好。我需要它從SQL Server運行,因此不能使用SSIS或其他類似的外部工具。 XQuery似乎花費了很多時間。
我使用SQL Server 2008 R2的
你爲什麼會選擇的OpenXML,而不是本地的SQL Server XQuery支持?看起來更容易使用,更靈活... –
我讀了很多地方,OpenXML更好的大文件,但它是非常強大的內存。要解析的文件可以輕鬆超過100MB。 – Ryez