Ⅰ sql語句如何將Excel表導入到資料庫我要的是SQL語句
在查詢分析器里,操作資料庫對象選擇Lee直接寫 SQL語句:
如果是導入數據到現有表,則採用
INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
的形式
如果是導入數據並新增表,則採用
SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
的形式。
以上語句是將 EXCEL文件里 SHEET1工作表中所有的列都讀進來,如果只想導部分列,可以
INSERT INTO 表 (a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
其實可以將 OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)當成一個表,例如我就寫過這樣一個句子:
INSERT INTO eval_channel_employee(channel,employee_id)
SELECT CASE a.渠道 WHEN 'DIY' THEN 1 WHEN 'RDC' THEN 0 WHEN 'KCM' THEN 2 ELSE 3 END
,b.id FROM
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\temp\name.xls',sheet1$) AS a,pers_employee b
WHERE a.員工編碼 =b.code
簡單的方法:
SQL2005中直接可以實現導入功能 SQL2008不知道可不可以。
操作過程如下:
第一步:登錄到 SQL Server Management Studio,
第二步:在 「對象資源管理器 」中右鍵單擊 「管理 」,在彈出列表中單擊 「導入數據 」
第三步:在 「導入向導 」對話框中單擊 「下一步 」,進入到 「選擇數據源 」對話框,在 「數據源 」列表中選擇 「Microsoft Excel 」,同時選擇相應的 Excel 文檔,完成後單擊 「下一步 」(一定要勾選該對話框中的 「首行包含列名稱 」,因此它是將 Excel文檔中的列標題為資料庫表中的列項標題)
第四步:指定目標資料庫服務,依次單擊 「下一步 」。。。。至到 「完成 」
第五步:重新打到 SQL Server Management Studio,進入到導入的資料庫表,可以發現所導入的 Excel文檔數據。
你試下下面的吧:
打開SQL Server Configuration Manager,啟用SQL Server Agent(實例名)。 啟動模式更改為「自動」
Ⅱ 如何用SQL語句查詢Excel數據
如何用SQL語句查詢Excel數據?
Q:如何用SQL語句查詢Excel數據? A:下列語句可在SQL SERVER中查詢Excel工作表中的數據。
2007和2010版本:
SELECT*FROMOpenDataSource( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="c:\book1.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet1$]
復制代碼
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$A1:D100]')
復制代碼
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$]')
復制代碼
2003版本:
SELECT*FROMOpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]
復制代碼
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$]')
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$A1:D100]')
復制代碼
而且,還需要用擁有伺服器sysa
Ⅲ 怎麼把excel文件里的數據導入SQL資料庫
導入數據不一定要用OPENSET函數,可以用更簡單的方法,步驟如下:
1、首先雙擊打開sqlserver,右擊需要導入數據的資料庫,如圖所示。
2、點擊任務,再點擊任務中的導入數據選項,打開導入導出數據向導界面。
3、在向導界面點擊下一步,進入下圖界面依次填寫需要的內容:數據源Excel,文件路徑,以及Excel版本,填好後點擊下一步(如果Excel其他版本不行的話,就選擇Excel97-03的,再將Excel保存為相應版本)即可。
4、然後就是目標資料庫設置:目標選擇msslserver,伺服器名稱不用變,身份驗證輸入相應的密碼,資料庫選擇對應的資料庫,設置好後點擊下一步。
5、然後來到圖示界面,直接默認選項即可,點擊下一步。
6、圖示界面,可以自定義目標資料庫(表在資料庫中可以不存在),點擊預覽即可以看到導入之後的表狀態,如圖。
7、上一步完成後再繼續下一步,最後點擊完成,即可導入成功,如圖。
8、最後在資料庫中檢查一下導入的表數據,附上導入的Excel數據為例。
(3)sqlopenrowsetexcel擴展閱讀:
導入數據也可使用OPENROWSET函數,但使用該函數之前必須先啟用AdHocDistributedQueries服務,因為這個服務不安全所以SqlServer默認是關閉的,系統管理員可以通過使用sp_configure啟用'AdHocDistributedQueries'。
但有一個問題一定要特別注意,由於'AdHocDistributedQueries'這個服務存在著較大的安全隱患,所以切記使用完畢之後一定要關閉。
所以,如果是導入數據建議不要使用OPENROWSET函數,弊大於利。