我需要將excel表格上傳到數據庫。對此我與查詢excel表格上傳到sqlserver的問題
SELECT * INTO temp FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Dokumente und Einstellungen\l.varada\Desktop\BA-Control.xls',
'SELECT * FROM [qry_BA_Controlling (Report)$]')
其中,C做:\ Dokumente UND Einstellungen \ l.varada \桌面\ BA-Control.xls是從哪兒Excel文件需要獲取的路徑。 qry_BA_Controlling(Report)是工作表的名稱。
因此,在執行查詢時,會創建一個名稱爲「temp」的表。隨着從Excel中填充的記錄。
現在我在excel中有一個日期字段。有時這個字段的值沒有正確地上傳到臨時表中。儘管它們在EXCEL中具有值,但此日期字段的值仍設置爲NULL。
EDIT 我已經修改我的查詢,以便,
Insert into temp Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Dokumente und Einstellungen\l.varada\Desktop\BA-Control.xls',
HDR=YES', 'SELECT * FROM [qry_BA_Controlling (Report)$]')
這裏溫度是一個已有的表,我已定義的字段[創建日期]的日期類型爲varchar和上傳的Excel中。然後我用轉換的數據類型更改爲正確的格式..
update temp set [Creation date] = CONVERT (varchar,[Creation date],101)
即使是現在它被填充NULL values..Or這種轉換需要在上傳工作要做。如果是這樣,請讓我知道。
我認爲這背後的原因是,這一列的前幾個值是空格,之後它有值..因爲它通過檢查前幾行確定數據類型..然後它是分配NULL ..請提示我是另一種選擇。
您是否嘗試過使用GUI?我以前在openrowsets中遇到了很多問題,GUI很快就被修復了。 – 2010-07-13 10:28:47
我在網上搜索到使用GUI將excel數據導入到sql server。它將我路由到某些需要支付的共享軟件代碼。 能否請您詳細解釋或請給我一個鏈接。 – satya 2010-07-13 14:36:14
只是谷歌「SQL服務器數據導入/導出嚮導」;) 例如,請參閱:http://www.databasejournal.com/features/mssql/article.php/3580216/SQL-Server-2005-Import-- Export-Wizard.htm – 2010-07-14 10:54:19