當前位置:首頁 » 編程語言 » sqlopenrowsetexcel
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlopenrowsetexcel

發布時間: 2023-08-30 21:56:20

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函數,弊大於利。