2010-12-14 52 views
2

我有我的SQL腳本問題SQL腳本:錯誤與「OPENROWSET」

SELECT 
    SP.[MobileNumber], 
    SP.[LastName], 
    SP.[FirstName] 
FROM SampleTable1 SP 
INNER JOIN OPENROWSET 
( 
    'Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=C:\devpc11\sample.xls;', 
    'SELECT 
    MobileNumber, 
    LastName, 
    FirstName 
    FROM [SampleData$]') T 
ON SP.[MobileNumber] = T.[MobileNumber] 
GO 

當我嘗試執行此,它生成此錯誤:

消息7357,16級,狀態2,行1 無法處理對象「SELECT MobileNumber, 姓氏, 名字 FROM [SampleData $]」。鏈接服務器「(null)」的OLE DB提供程序「Microsoft.Jet.OLEDB.4.0」表示該對象沒有列或當前用戶沒有該對象的權限。

有沒有解決方案?我真的無法找到任何在過去3小時..基本上,我只是想操縱Excel文件中的數據,然後將其保存到SQL Server 2005數據庫,但現在,我想從Excel文件檢索數據到sql服務器..感謝您的幫助..

+0

我已經做了。謝謝你提醒我。 :) – iceheaven31 2010-12-15 06:10:26

回答

1

我得到這個與電子表格本地工作。忘記OPENROWSET

  1. 在您的Excel電子表格中創建一個已命名的範圍。 Tio做到這一點,突出顯示所需的列(包括標題),右鍵單擊並選擇「命名範圍」。給這個名字,這將是你的表名。

    http://www.homeandlearn.co.uk/me/mes9p2.html

  2. 保存並關閉您的電子表格。如果打開它,SQL Server將無法訪問它。

  3. 添加鏈接的服務器。按照E節在指令它告訴你如何添加一個鏈接服務器的Excel電子表格如下:

    http://msdn.microsoft.com/en-us/library/ms190479.aspx

  4. 你應該能夠查詢DS相當愉快,再按照指示。

下面是對我的作品的代碼:

EXEC sp_addlinkedserver 'ExcelSource4', 
    'Jet 4.0', 
    'Microsoft.Jet.OLEDB.4.0', 
    'c:\sqlss.xls', 
    NULL, 
    'Excel 5.0'; 
GO 

SELECT * 
    FROM ExcelSource4...MyTable2; 

最後。開始接受一些答案並投票支持任何有用的答案。這是StackOverflow的命脈。

+0

這一個工作!非常感謝! – iceheaven31 2010-12-15 02:48:23