它實際上是用VARBINARY和XML(在SQL 2008 R2)一個問題:
FOR XML EXPLICIT and RAW modes currently do not support addressing binary data as URLs in column SomeComlumn. Remove the column, or use the BINARY BASE64 mode, or create the URL directly using the 'dbobject/TABLE[@PK1="V1"]/@COLUMN' syntax.
快速搜索顯示this post。
是否有要在XML導出particluar原因是什麼?我一直在使用bcp使用默認的二進制輸出,並且VarBinary字段沒有問題。二進制文件比XML文件小得多。如果你不想在導出和導入之間做任何操作,我建議你使用二進制文件。
試着改變你的查詢:
SET @String='bcp "SELECT * FROM dbo.tblScan FOR XML RAW, BINARY BASE64" queryout C:\Users\DAAGEU\Desktop\tblScanOutput.xml -c -T'
然而,通過日誌,看到,當前的問題是登錄。您正在使用可信連接,但是當它由SQL Server引擎產生時,是否知道哪個身份正在運行bcp進程?這很可能是SQL Server的身份,我猜不能訪問數據庫/表(最可能的是本地系統或網絡服務)。如果您仍然希望使用SQL查詢而不是批處理文件(.bat或.cmd),我建議您使用顯式登錄憑據(SQL Server身份驗證)而不是可信連接。
錯誤表示無法打開連接,但我使用的是可信連接或? – dg90 2012-01-10 10:27:21
這看起來不像你用Xml做的事情,而是連接到服務器。更簡單的查詢(例如'SELECT COUNT(*)FROM dbo.tblScan')是否有效? – AakashM 2012-01-10 11:01:41
不,這給出了相同的錯誤 – dg90 2012-01-10 11:06:29