2013-08-30 87 views
1

我有一個包含大約301808行和2列的excel 2007文件。我試圖使用SSIS導入,但不能使用2007 excel。然後我決定嘗試在SQL Server中創建一個鏈接服務器,按照此處的說明操作:使用SQL Server 2005導入Excel 2007文件

  • 在SQL Server Management Studio中,展開對象資源管理器中的服務器對象。
  • 右鍵單擊鏈接服務器,然後單擊新建鏈接的服務器。
  • 在左側窗格中,選擇常規頁面,然後按照下列步驟操作:
  • 在第一個文本框中鍵入鏈接服務器的任何名稱。
  • 選擇其他數據源選項。
  • 在提供程序列表中,單擊Microsoft Jet 4.0 OLE DB提供程序。
  • 在產品名稱框中,鍵入Excel作爲OLE DB數據源的名稱。
  • 在數據源框中,鍵入Excel文件的完整路徑和文件名。
  • 在提供程序字符串框中,爲Excel 2002,Excel 2000或Excel 97 - 工作簿鍵入Excel 8.0。
  • 單擊確定以創建新的鏈接服務器。

從這裏:http://support.microsoft.com/kb/306397/EN-US

但是說明書只覆蓋以前的Excel文件沒有2007年那麼我擡起頭連接字符串爲2007年和鏈接的服務器的設置中使用Excel的12.0,而不在Excel 8.0:

  • 提供信息:Microsoft Office 12.0 Access數據庫引擎OLE DB
  • 提供產品名稱:Excel數據源:C:\ Documents和
  • Setti NGS \用戶名\桌面\ MAIN \ FilesIns \ MyExcelFile.xlsx提供商
  • 字符串:Excel的12.0
  • 地點:
  • 目錄:

然後我得到這個錯誤:

The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "EXCEL_MY_FILE" does not contain the table "Report 1$". The table either does not exist or the current user does not have permissions on that table.

我進入安全並添加NT權限\系統,以防萬一它是權限問題,它仍然給了我上面的錯誤。

excel表被稱爲「報告1」。

我也使用OPENROWSET在SQL來看看發生了什麼試過,我得到這個:

SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server.

我又試圖在下面鏈接的代碼,看看它是否幫助了我使用OPENROWSET:

How to enable Ad Hoc Distributed Queries

EXEC sp_configure 'show advanced options', 1 
RECONFIGURE 
GO 
EXEC sp_configure 'ad hoc distributed queries', 1 
RECONFIGURE 
GO 

,並得到:

OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "Syntax error in FROM clause.". Msg 7321, Level 16, State 2, Line 1 An error occurred while preparing the query "Select * from C:\Documents and Settings\UserName\Desktop\Main\FilesIns\MyExcelFile.xlsx" for execution against OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".

所以我不確定我的openrowset語句中的值是否正確。

真的只是尋找一種方式來導入這個文件到SQL表中而不使用SSIS - 我無法使用它。

感謝

安德魯

回答

相關問題