转载自csdn SQL SERVER 与ACCESS、EXCEL的数据转换
生活随笔
收集整理的這篇文章主要介紹了
转载自csdn SQL SERVER 与ACCESS、EXCEL的数据转换
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
代碼熟悉SQL?SERVER?2000的數(shù)據(jù)庫(kù)管理員都知道,其DTS可以進(jìn)行數(shù)據(jù)的導(dǎo)入導(dǎo)出,其實(shí),我們也可以使用Transact-SQL語(yǔ)句進(jìn)行導(dǎo)入導(dǎo)出操作。在Transact-SQL語(yǔ)句中,我們主要使用OpenDataSource函數(shù)、OPENROWSET?函數(shù),關(guān)于函數(shù)的詳細(xì)說(shuō)明,請(qǐng)參考?SQL聯(lián)機(jī)幫助。利用下述方法,可以十分容易地實(shí)現(xiàn)SQL?SERVER、ACCESS、EXCEL數(shù)據(jù)轉(zhuǎn)換,詳細(xì)說(shuō)明如下:
?
一、???????????SQL?SERVER?和ACCESS的數(shù)據(jù)導(dǎo)入導(dǎo)出
常規(guī)的數(shù)據(jù)導(dǎo)入導(dǎo)出:
使用DTS向?qū)нw移你的Access數(shù)據(jù)到SQL?Server,你可以使用這些步驟:?
1在SQL?SERVER企業(yè)管理器中的Tools(工具)菜單上,選擇Data?Transformation?
2Services(數(shù)據(jù)轉(zhuǎn)換服務(wù)),然后選擇??czdImport?Data(導(dǎo)入數(shù)據(jù))。?
3在Choose?a?Data?Source(選擇數(shù)據(jù)源)對(duì)話框中選擇Microsoft?Access?as?the?Source,然后鍵入你的.mdb數(shù)據(jù)庫(kù)(.mdb文件擴(kuò)展名)的文件名或通過(guò)瀏覽尋找該文件。?
4在Choose?a?Destination(選擇目標(biāo))對(duì)話框中,選擇Microsoft?OLE DB?Prov?ider?for?SQL Server,選擇數(shù)據(jù)庫(kù)服務(wù)器,然后單擊必要的驗(yàn)證方式。?
5在Specify?Table?Copy(指定表格復(fù)制)或Query(查詢)對(duì)話框中,單擊Copy?tables(復(fù)制表格)。?
6在Select?Source?Tables(選擇源表格)對(duì)話框中,單擊Select?All(全部選定)。下一步,完成。
?
Transact-SQL語(yǔ)句進(jìn)行導(dǎo)入導(dǎo)出:
1.?????????在SQL?SERVER里查詢access數(shù)據(jù):
SELECT?*?
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
'Data?Source="c:\DB.mdb";User?ID=Admin;Password=')...表名
2.?????????將access導(dǎo)入SQL?server?
在SQL?SERVER?里運(yùn)行:
SELECT?*
INTO?newtable
FROM?OPENDATASOURCE?('Microsoft.Jet.OLEDB.4.0',?
??????'Data?Source="c:\DB.mdb";User?ID=Admin;Password='?)...表名
?
3.?????????將SQL?SERVER表里的數(shù)據(jù)插入到Access表中
在SQL?SERVER?里運(yùn)行:
insert?into?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
??'Data?Source="?c:\DB.mdb";User?ID=Admin;Password=')...表名?
(列名1,列名2)
select?列名1,列名2??from??sql表
?
實(shí)例:
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的數(shù)據(jù)導(dǎo)入導(dǎo)出
?
1、在SQL?SERVER里查詢Excel數(shù)據(jù):
SELECT?*?
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
'Data?Source="c:\book1.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...[Sheet1$]
?
下面是個(gè)查詢的示例,它通過(guò)用于?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的數(shù)據(jù)導(dǎo)入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$]
?
實(shí)例:
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中查詢到的數(shù)據(jù)導(dǎo)成一個(gè)Excel文件
T-SQL代碼:
EXEC?master..xp_cmdshell?'bcp?庫(kù)名.dbo.表名out?c:\Temp.xls?-c?-q?-S"servername"?-U"sa"?-P""'
參數(shù):S?是SQL服務(wù)器名;U是用戶;P是密碼
說(shuō)明:還可以導(dǎo)出文本文件等多種格式
?
實(shí)例:
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中應(yīng)用ADO導(dǎo)出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?庫(kù)名.dbo.表名"?queryout?E:\DT.xls?-c?-Sservername?-Usa?-Ppassword'"
?
4、在SQL?SERVER里往Excel插入數(shù)據(jù):
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')??
總結(jié):利用以上語(yǔ)句,我們可以方便地將SQL?SERVER、ACCESS和EXCEL電子表格軟件中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,為我們提供了極大方便!
?
參考:
http://www.itrain.de/knowhow/sql/transfer/adhoc/
?
一、???????????SQL?SERVER?和ACCESS的數(shù)據(jù)導(dǎo)入導(dǎo)出
常規(guī)的數(shù)據(jù)導(dǎo)入導(dǎo)出:
使用DTS向?qū)нw移你的Access數(shù)據(jù)到SQL?Server,你可以使用這些步驟:?
1在SQL?SERVER企業(yè)管理器中的Tools(工具)菜單上,選擇Data?Transformation?
2Services(數(shù)據(jù)轉(zhuǎn)換服務(wù)),然后選擇??czdImport?Data(導(dǎo)入數(shù)據(jù))。?
3在Choose?a?Data?Source(選擇數(shù)據(jù)源)對(duì)話框中選擇Microsoft?Access?as?the?Source,然后鍵入你的.mdb數(shù)據(jù)庫(kù)(.mdb文件擴(kuò)展名)的文件名或通過(guò)瀏覽尋找該文件。?
4在Choose?a?Destination(選擇目標(biāo))對(duì)話框中,選擇Microsoft?OLE DB?Prov?ider?for?SQL Server,選擇數(shù)據(jù)庫(kù)服務(wù)器,然后單擊必要的驗(yàn)證方式。?
5在Specify?Table?Copy(指定表格復(fù)制)或Query(查詢)對(duì)話框中,單擊Copy?tables(復(fù)制表格)。?
6在Select?Source?Tables(選擇源表格)對(duì)話框中,單擊Select?All(全部選定)。下一步,完成。
?
Transact-SQL語(yǔ)句進(jìn)行導(dǎo)入導(dǎo)出:
1.?????????在SQL?SERVER里查詢access數(shù)據(jù):
SELECT?*?
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
'Data?Source="c:\DB.mdb";User?ID=Admin;Password=')...表名
2.?????????將access導(dǎo)入SQL?server?
在SQL?SERVER?里運(yùn)行:
SELECT?*
INTO?newtable
FROM?OPENDATASOURCE?('Microsoft.Jet.OLEDB.4.0',?
??????'Data?Source="c:\DB.mdb";User?ID=Admin;Password='?)...表名
?
3.?????????將SQL?SERVER表里的數(shù)據(jù)插入到Access表中
在SQL?SERVER?里運(yùn)行:
insert?into?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
??'Data?Source="?c:\DB.mdb";User?ID=Admin;Password=')...表名?
(列名1,列名2)
select?列名1,列名2??from??sql表
?
實(shí)例:
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的數(shù)據(jù)導(dǎo)入導(dǎo)出
?
1、在SQL?SERVER里查詢Excel數(shù)據(jù):
SELECT?*?
FROM?OpenDataSource(?'Microsoft.Jet.OLEDB.4.0',
'Data?Source="c:\book1.xls";User?ID=Admin;Password=;Extended?properties=Excel?5.0')...[Sheet1$]
?
下面是個(gè)查詢的示例,它通過(guò)用于?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的數(shù)據(jù)導(dǎo)入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$]
?
實(shí)例:
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中查詢到的數(shù)據(jù)導(dǎo)成一個(gè)Excel文件
T-SQL代碼:
EXEC?master..xp_cmdshell?'bcp?庫(kù)名.dbo.表名out?c:\Temp.xls?-c?-q?-S"servername"?-U"sa"?-P""'
參數(shù):S?是SQL服務(wù)器名;U是用戶;P是密碼
說(shuō)明:還可以導(dǎo)出文本文件等多種格式
?
實(shí)例:
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中應(yīng)用ADO導(dǎo)出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?庫(kù)名.dbo.表名"?queryout?E:\DT.xls?-c?-Sservername?-Usa?-Ppassword'"
?
4、在SQL?SERVER里往Excel插入數(shù)據(jù):
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')??
總結(jié):利用以上語(yǔ)句,我們可以方便地將SQL?SERVER、ACCESS和EXCEL電子表格軟件中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,為我們提供了極大方便!
?
參考:
http://www.itrain.de/knowhow/sql/transfer/adhoc/
轉(zhuǎn)載于:https://www.cnblogs.com/s021368/articles/1687273.html
總結(jié)
以上是生活随笔為你收集整理的转载自csdn SQL SERVER 与ACCESS、EXCEL的数据转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 最新的 PageValidate 类
- 下一篇: Visual Studio 2010 新