转载自csdn SQL SERVER 与ACCESS、EXCEL的数据转换
生活随笔
收集整理的這篇文章主要介紹了
转载自csdn SQL SERVER 与ACCESS、EXCEL的数据转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼熟悉SQL?SERVER?2000的數據庫管理員都知道,其DTS可以進行數據的導入導出,其實,我們也可以使用Transact-SQL語句進行導入導出操作。在Transact-SQL語句中,我們主要使用OpenDataSource函數、OPENROWSET?函數,關于函數的詳細說明,請參考?SQL聯機幫助。利用下述方法,可以十分容易地實現SQL?SERVER、ACCESS、EXCEL數據轉換,詳細說明如下:
?
一、???????????SQL?SERVER?和ACCESS的數據導入導出
常規的數據導入導出:
使用DTS向導遷移你的Access數據到SQL?Server,你可以使用這些步驟:?
1在SQL?SERVER企業管理器中的Tools(工具)菜單上,選擇Data?Transformation?
2Services(數據轉換服務),然后選擇??czdImport?Data(導入數據)。?
3在Choose?a?Data?Source(選擇數據源)對話框中選擇Microsoft?Access?as?the?Source,然后鍵入你的.mdb數據庫(.mdb文件擴展名)的文件名或通過瀏覽尋找該文件。?
4在Choose?a?Destination(選擇目標)對話框中,選擇Microsoft?OLE DB?Prov?ider?for?SQL Server,選擇數據庫服務器,然后單擊必要的驗證方式。?
5在Specify?Table?Copy(指定表格復制)或Query(查詢)對話框中,單擊Copy?tables(復制表格)。?
6在Select?Source?Tables(選擇源表格)對話框中,單擊Select?All(全部選定)。下一步,完成。
?
Transact-SQL語句進行導入導出:
1.?????????在SQL?SERVER里查詢access數據:
SELECT?*?
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
'Data?Source="c:\DB.mdb";User?ID=Admin;Password=')...表名
2.?????????將access導入SQL?server?
在SQL?SERVER?里運行:
SELECT?*
INTO?newtable
FROM?OPENDATASOURCE?('Microsoft.Jet.OLEDB.4.0',?
??????'Data?Source="c:\DB.mdb";User?ID=Admin;Password='?)...表名
?
3.?????????將SQL?SERVER表里的數據插入到Access表中
在SQL?SERVER?里運行:
insert?into?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
??'Data?Source="?c:\DB.mdb";User?ID=Admin;Password=')...表名?
(列名1,列名2)
select?列名1,列名2??from??sql表
?
實例:
insert?into??OPENROWSET('Microsoft.Jet.OLEDB.4.0',?
???'C:\db.mdb';'admin';'',?Test)?
select?id,name?from?Test
?
?
INSERT?INTO?OPENROWSET('Microsoft.Jet.OLEDB.4.0',?'c:\trade.mdb';?'admin';?'',?表名)
SELECT?*
FROM?sqltablename
?
?
二、???????????SQL?SERVER?和EXCEL的數據導入導出
?
1、在SQL?SERVER里查詢Excel數據:
SELECT?*?
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
'Data?Source="c:\book1.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...[Sheet1$]
?
下面是個查詢的示例,它通過用于?Jet?的?OLE?DB?提供程序查詢?Excel?電子表格。
SELECT?*?
FROM?OpenDataSource?(?'Microsoft.Jet.OLEDB.4.0',
??'Data?Source="c:\Finance\account.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...xactions
?
2、將Excel的數據導入SQL?server?:
SELECT?*?into?newtable
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
??'Data?Source="c:\book1.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...[Sheet1$]
?
實例:
SELECT?*?into?newtable
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
??'Data?Source="c:\Finance\account.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...xactions
?
3、將SQL?SERVER中查詢到的數據導成一個Excel文件
T-SQL代碼:
EXEC?master..xp_cmdshell?'bcp?庫名.dbo.表名out?c:\Temp.xls?-c?-q?-S"servername"?-U"sa"?-P""'
參數:S?是SQL服務器名;U是用戶;P是密碼
說明:還可以導出文本文件等多種格式
?
實例:
EXEC?master..xp_cmdshell?'bcp?saletesttmp.dbo.CusAccount?out?c:\temp1.xls?-c?-q?-S"pmserver"?-U"sa"?-P"sa"'
?
?EXEC?master..xp_cmdshell?'bcp?"SELECT?au_fname,?au_lname?FROM?pubs..authors?ORDER?BY?au_lname"?queryout?C:\?authors.xls?-c?-Sservername?-Usa?-Ppassword'
?
在VB6中應用ADO導出EXCEL文件代碼:?
Dim?cn??As?New?ADODB.Connection
cn.open?"Driver={SQL?Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute?"master..xp_cmdshell?'bcp?"SELECT?col1,?col2?FROM?庫名.dbo.表名"?queryout?E:\DT.xls?-c?-Sservername?-Usa?-Ppassword'"
?
4、在SQL?SERVER里往Excel插入數據:
insert?into?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
'Data?Source="c:\Temp.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...table1?(A1,A2,A3)?values?(1,2,3)
?
T-SQL代碼:
INSERT?INTO??
?OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',??
?'Extended?Properties=Excel?8.0;Data?source=C:\training\inventur.xls')...[Filiale1$]??
?(bestand,?produkt)?VALUES?(20,?'Test')??
總結:利用以上語句,我們可以方便地將SQL?SERVER、ACCESS和EXCEL電子表格軟件中的數據進行轉換,為我們提供了極大方便!
?
參考:
http://www.itrain.de/knowhow/sql/transfer/adhoc/
?
一、???????????SQL?SERVER?和ACCESS的數據導入導出
常規的數據導入導出:
使用DTS向導遷移你的Access數據到SQL?Server,你可以使用這些步驟:?
1在SQL?SERVER企業管理器中的Tools(工具)菜單上,選擇Data?Transformation?
2Services(數據轉換服務),然后選擇??czdImport?Data(導入數據)。?
3在Choose?a?Data?Source(選擇數據源)對話框中選擇Microsoft?Access?as?the?Source,然后鍵入你的.mdb數據庫(.mdb文件擴展名)的文件名或通過瀏覽尋找該文件。?
4在Choose?a?Destination(選擇目標)對話框中,選擇Microsoft?OLE DB?Prov?ider?for?SQL Server,選擇數據庫服務器,然后單擊必要的驗證方式。?
5在Specify?Table?Copy(指定表格復制)或Query(查詢)對話框中,單擊Copy?tables(復制表格)。?
6在Select?Source?Tables(選擇源表格)對話框中,單擊Select?All(全部選定)。下一步,完成。
?
Transact-SQL語句進行導入導出:
1.?????????在SQL?SERVER里查詢access數據:
SELECT?*?
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
'Data?Source="c:\DB.mdb";User?ID=Admin;Password=')...表名
2.?????????將access導入SQL?server?
在SQL?SERVER?里運行:
SELECT?*
INTO?newtable
FROM?OPENDATASOURCE?('Microsoft.Jet.OLEDB.4.0',?
??????'Data?Source="c:\DB.mdb";User?ID=Admin;Password='?)...表名
?
3.?????????將SQL?SERVER表里的數據插入到Access表中
在SQL?SERVER?里運行:
insert?into?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
??'Data?Source="?c:\DB.mdb";User?ID=Admin;Password=')...表名?
(列名1,列名2)
select?列名1,列名2??from??sql表
?
實例:
insert?into??OPENROWSET('Microsoft.Jet.OLEDB.4.0',?
???'C:\db.mdb';'admin';'',?Test)?
select?id,name?from?Test
?
?
INSERT?INTO?OPENROWSET('Microsoft.Jet.OLEDB.4.0',?'c:\trade.mdb';?'admin';?'',?表名)
SELECT?*
FROM?sqltablename
?
?
二、???????????SQL?SERVER?和EXCEL的數據導入導出
?
1、在SQL?SERVER里查詢Excel數據:
SELECT?*?
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
'Data?Source="c:\book1.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...[Sheet1$]
?
下面是個查詢的示例,它通過用于?Jet?的?OLE?DB?提供程序查詢?Excel?電子表格。
SELECT?*?
FROM?OpenDataSource?(?'Microsoft.Jet.OLEDB.4.0',
??'Data?Source="c:\Finance\account.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...xactions
?
2、將Excel的數據導入SQL?server?:
SELECT?*?into?newtable
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
??'Data?Source="c:\book1.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...[Sheet1$]
?
實例:
SELECT?*?into?newtable
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
??'Data?Source="c:\Finance\account.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...xactions
?
3、將SQL?SERVER中查詢到的數據導成一個Excel文件
T-SQL代碼:
EXEC?master..xp_cmdshell?'bcp?庫名.dbo.表名out?c:\Temp.xls?-c?-q?-S"servername"?-U"sa"?-P""'
參數:S?是SQL服務器名;U是用戶;P是密碼
說明:還可以導出文本文件等多種格式
?
實例:
EXEC?master..xp_cmdshell?'bcp?saletesttmp.dbo.CusAccount?out?c:\temp1.xls?-c?-q?-S"pmserver"?-U"sa"?-P"sa"'
?
?EXEC?master..xp_cmdshell?'bcp?"SELECT?au_fname,?au_lname?FROM?pubs..authors?ORDER?BY?au_lname"?queryout?C:\?authors.xls?-c?-Sservername?-Usa?-Ppassword'
?
在VB6中應用ADO導出EXCEL文件代碼:?
Dim?cn??As?New?ADODB.Connection
cn.open?"Driver={SQL?Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute?"master..xp_cmdshell?'bcp?"SELECT?col1,?col2?FROM?庫名.dbo.表名"?queryout?E:\DT.xls?-c?-Sservername?-Usa?-Ppassword'"
?
4、在SQL?SERVER里往Excel插入數據:
insert?into?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
'Data?Source="c:\Temp.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...table1?(A1,A2,A3)?values?(1,2,3)
?
T-SQL代碼:
INSERT?INTO??
?OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',??
?'Extended?Properties=Excel?8.0;Data?source=C:\training\inventur.xls')...[Filiale1$]??
?(bestand,?produkt)?VALUES?(20,?'Test')??
總結:利用以上語句,我們可以方便地將SQL?SERVER、ACCESS和EXCEL電子表格軟件中的數據進行轉換,為我們提供了極大方便!
?
參考:
http://www.itrain.de/knowhow/sql/transfer/adhoc/
轉載于:https://www.cnblogs.com/s021368/articles/1687273.html
總結
以上是生活随笔為你收集整理的转载自csdn SQL SERVER 与ACCESS、EXCEL的数据转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新的 PageValidate 类
- 下一篇: Visual Studio 2010 新