2014-10-20 80 views
0

我試圖將XML fie導入到SQL Server 2000(SP2)表中。我嘗試了下面的查詢,並在BULK這個詞的附近給出了語法錯誤。不完全確定BULKSINGLE_BLOB是否在SQL Server 2000 SP2中工作。使用OPENROWSET將XML文件導入SQL Server 2000

SELECT * FROM OPENROWSET(BULK N'E:\temp\PersonData.xml', SINGLE_BLOB) AS x 

也試過下面的查詢....

SELECT * FROM OPENROWSET('MSDASQL', 
'Driver={Microsoft Text Driver (*.xml)};DefaultDir=E:\temp\PersonData.xml;', 
'SELECT * FROM [PersonData.xml];') 

....,它給了這個錯誤:

[OLE/DB provider returned message: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified]
OLE DB error trace [OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x80004005: ].

我在做什麼錯在這裏?或者它是一個SQL Server 2000的問題?我的目標是使用存儲過程將XML文件導入到SQL Server中。無法升級服務器,也無法使用第三方工具。在這些範圍內,請爲我提供一種實現此目的的方法。提前致謝。

回答

1

OPENROWSET(BULK ...)是在SQL Server 2005中引入的,所以你不能使用它。

OPENROWSET('MSDASQL', ...)因提供無用的錯誤消息而臭名昭着。有關相關問題,請參閱Error: "OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found ...";這表明文件名不應該是DefaultDir參數的一部分(因此DefaultDir=E:\temp)。

如果一切都失敗了,您可以使用BULK INSERT以僞造的值作爲字段和行終止符以讀取單個NTEXT列中的整個文件;您可以使用sp_xml_preparedocumentOPENXML來閱讀它。

+0

關於使用BULK INSERT的好消息。工作。非常感謝 – nlkasyap 2014-10-20 11:56:34