EXCEL數據導入SQL數據庫

轉自:http://wenku.baidu.com/view/132530e80975f46527d3e1b0.html

 

 

實驗環境:   WIN XP  MS Office Excel 2007  Sql Server 2008

準備數據:  Excel文檔 :   D:\test\重複出修率.xlsx  

 

方法一:

 

第一步: 打開SSMS:

【開始】→【所有程序】→【Microsoft Sql Server 2008】→【Sql Server Management Studio

 

第二步: 連接數據庫:

 對象資源管理器中點擊【連接】→【數據庫引擎】登陸服務器

    P.S:如果沒有看到對象資源管理器’,點擊左上角的【視圖】→【對象管理器】)

 

第三步登陸成功後,右擊你要導入數據的數據庫名,我這裏數據庫名是’TEST’

 右擊【TEST】→【任務】→【導入數據】

 

 

這時候會出現一個嚮導:點擊【下一步】

 

              

 

 

 

在彈出的窗口中,【數據源】選擇:Microsoft  Excel  ;

Excel文件路徑】就選擇你本地電腦存放Excel文檔的路徑,我這裏是D:\test\重複出修率.xlsx

Excel版本】選擇Excel 2007  (可以根據你office的版本,選擇其他如Excel 2003等等。)

選中【首行包含列名稱】框,最後點擊【下一步】

首行包含列名稱是指Excel中的首行數據插入數據庫後將作爲新建表的列名.

 

 

 

 

 

在彈出窗口中,【目標】可以採取默認的,【服務器名稱】也是一樣

可以選擇身份驗證,最後選擇你要插入數據到哪個數據庫中。

如我這裏選的是’TEST’ ,選好後點擊【下一步】

如果就把Excel數據插入一個新表,就選擇【複製一個或多個表或視圖的數據】

如果想把Excel數據插入到已存在的一張表中,則選擇下面的【編寫查詢以指定要傳輸的數據】

我這裏是選擇上面一個,然後點擊【下一步】

 

 

接着會彈出Excel表中的sheet表名字,如果你沒有修改過sheet表名字,則可能顯示的是’shee1$’, ’shee2$’, ’shee3$’等等.

然後你選中你想要導入的哪張表的數據,我這裏導入的是【’aug$’

選中後,右邊的【目標】欄位中會出現內容,

dbo是指數據庫的架構名, aug$只是新建的表名,如果你想修改表明,雙擊就可以表明進入編輯狀態就可以修改了。我這裏修改的表名稱爲: aug_info

 

修改後你也可以點擊【編輯映射】

你可以在這裏修改【目標】,【類型】,是否可以爲NULL,【大小】等建表數據。

修改好後,點擊【確定】,如果不想修改就點擊【取消】

返回上個窗口後,你也可以點擊【預覽】

 

預覽裏面是Excel表中的一些數據。點擊【確定】,然後點擊【下一步】

 

在彈出的頁面中,就選中【立即運行】,至於【保存SSIS包】我也不是很清楚幹嘛的。看樣子好像是加密來着。

然後點擊【下一步】

這個窗口就是一些提示信息,點擊【完成】

這個窗口是導入數據提示信息,看來我導入數據成功了。

新建表名爲aug_info,插入數據336行,所在數據庫爲TEST.

點擊【關閉】按鈕就可以了。

然後就是到SSMS中查看是否新生成了aug_info這張表.

刷新【TEST】數據庫或者重新登錄SSMS

在【TEST】數據庫下,查看【表】,發現有個表名是aug_info

進一步確認下,數據是否有誤.

點擊【對象資源管理器】上面的【新建查詢】,

輸入:

use TEST

select COUNT(*) as 有多少行數據 from aug_info

select * from aug_info

 

 

 

前面顯示‘已複製336行’,現在查詢到表中有336行數據。看來這個表就是剛剛從Excel中導入的數據。

OK,大功告成。

很簡單吧,點點鼠標就可以了!

 

 

 

 

P.S:

前面到這裏的時候,選擇了上面的【複製一個或多個表或視圖的數據】

那下面的【編寫查詢以指定要傳輸的數據】怎麼用呢?

下面我們來試一下,重新導入Excel,到這一步選擇下面按鈕,然後點擊【下一步】

發現這個是用來寫SQL代碼的。這個該怎麼用呢?我也沒用過,百度了下。

這個主要針對從數據庫中導出條件篩選的數據.比如有一張test,我只想導出表的其中一個字段或者幾個字段的數據.就可以用這個.

select   id,  name  from  test   where  條件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

方法二:

 

--首先打開SSMS,然後點擊左上角的【新建查詢(N)】,在右邊彈出的窗口中輸入一下代碼:

代碼一:

 

----------------------------------------------------------------------------------------

use TEST    --- TEST’是數據庫名字,你可以切換到你想要的數據庫或直接輸入數據庫名字

----根據系統需要使用這幾段批處理命令打開相應功能

EXEC sp_configure 'show advanced options', 1;

GO

RECONFIGURE;

GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 1;

GO

RECONFIGURE;

GO

----以上爲根據實際情況的可選命令

 

 

----開始插入數據到TEST數據庫的一個新表中

select  *  into newtable_name   from

OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data Source="c:\daoru.xlsx";Extended properties="Excel 12.0;HDR=Yes"')...[sheet1$]

go

 

 

P.S:

1:執行這段代碼之前,你需要準備導入的數據。我用的是Excel 2007  Excel文件的名字爲“daoru”,放在C盤目錄下。

2  代碼中的select * into newtable_name  from ...   這是把excel中的數據插入到TEST數據庫中,並同時新建表名爲newtable_name存放插入的數據.

3:    代碼中的Office2007的數據庫驅動爲“Microsoft.Ace.OLEDB.12.0”,

       如果是Office2003的話應改成“Microsoft.Jet.OLEDB.4.0”,

       還有Office2007Excel的“Extended properties”中爲“Excel 12.0   Office2003爲“Excel 8.0

4:   代碼中'Data Source="c:\daoru.xlsx" 就是要導入數據的文件存放路徑. (注意後綴:Excel 2007的爲.xlsx;Excel  2003的爲.xls)

5:   代碼中的...[sheet1$]  爲表名,格式爲:[XXX$]或者XXX$,不需要中括號也行,而且表名不能以數字開頭(其實這是幾乎所有編程語言的變量命名規則),切記!  沒有修改過名字的話,Excel默認是shee1,shee2,shee3....

6:   當然,你也可以使導入的數據,不用新建表.而是直接導入到數據庫已有的表中, 只要稍微修改代碼就可以了.

 

代碼二:

---------------------------------------------------------------------------------------

     insert into 已存在的表名  (字段一,字段二)     select  A,B   from

     OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data Source="c:\daoru.xlsx";Extended properties="Excel 12.0;HDR=Yes"')...[sheet1$]

go

---------------------------------------------------------------------------------------

代碼二中,A,B表示的意思是Excel中的A列和B, 但是直接輸入A,B是沒有用的.

這裏還要提醒一點,導入數據的時候,系統默認Excel的第一行數據是字段名.

所以,你可以把Excel的第一行的前兩列數據改爲AB,這樣就可以了

如果Excel中的列數和數據庫中的已存在的表的列數相等,也可以改成如下:

代碼三:

---------------------------------------------------------------------------------------

     insert into 已存在的表名   select  *  from

     OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data Source="c:\daoru.xlsx";Extended properties="Excel 12.0;HDR=Yes"')...[sheet1$]

go

---------------------------------------------------------------------------------------

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章