SQL 操作外部資料(excel,access等)

2021-05-28 12:52:53 字數 3676 閱讀 9853

參考:連線

sqlserver 與access、excel的資料轉換

熟悉sql server2000的資料庫管理員都知道,其dts可以進行資料的匯入匯出,其實,我們也可以使用transact-sql語句進行匯入匯出操作。

在transact-sql語句中,我們主要使用opendatasource函式、openrowset 函式,關於函式的詳細說明,請參考sql聯機幫助。

利用下述方法,可以十分容易地實現sql server、access、excel資料轉換,詳細說明如下:

常規的資料匯入匯出:

使用dts嚮導遷移你的access資料到sql server,你可以使用這些步驟:

1在sql server企業管理器中的tools(工具)選單上,選擇datatransformation

2services(資料轉換服務),然後選擇  czdimport data(匯入資料)。

3在choose a datasource(選擇資料來源)對話方塊中選擇microsoft access as the source,然後鍵入你的.mdb資料庫(.mdb副檔名)的檔名或通過瀏覽尋找該檔案。

4在choose adestination(選擇目標)對話方塊中,選擇microsoft ole db prov ider for sql server,選擇資料庫伺服器,然後單擊必要的驗證方式。

5在specify table copy(指定**複製)或query(查詢)對話方塊中,單擊copy tables(複製**)。

6在select sourcetables(選擇源**)對話方塊中,單擊select all(全部選定)。下一步,完成。

transact-sql語句進行匯入匯出:

select *

from opendatasource( 'microsoft.jet.oledb.4.0',

'data source="c:\db.mdb";userid=admin;password=')...表名

在sql server 裡執行:

select *

into newtable

from opendatasource ('microsoft.jet.oledb.4.0',

'datasource="c:\db.mdb";user id=admin;password=' )...表名

在sql server 裡執行:

insert into opendatasource( 'microsoft.jet.oledb.4.0',

'datasource=" 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

select *

from opendatasource( 'microsoft.jet.oledb.4.0',

'data source="c:\book1.xls";userid=admin;password=;extended properties=excel 5.0')...[sheet1$]

下面是個查詢的示例,它通過用於 jet 的 ole db 提供程式查詢 excel 電子**。

select *

from opendatasource ( 'microsoft.jet.oledb.4.0',

'datasource="c:\finance\account.xls";user id=admin;password=;extendedproperties=excel 5.0')...xactions

select * into newtable

from opendatasource( 'microsoft.jet.oledb.4.0',

'datasource="c:\book1.xls";user id=admin;password=;extendedproperties=excel 5.0')...[sheet1$]

例項:select * into newtable

from opendatasource( 'microsoft.jet.oledb.4.0',

'datasource="c:\finance\account.xls";user id=admin;password=;extendedproperties=excel 5.0')...xactions

t-sql**:

exec master..xp_cmdshell 'bcp 庫名.dbo.表名out c:\temp.xls-c -q -s"servername" -u"sa" -p""'

引數:s 是sql伺服器名;u是使用者;p是密碼

例項:execmaster..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 newadodb.connection

cn.open "driver=;server=websvr;database=webmis;uid=sa;wd=123;"

cn.execute"master..xp_cmdshell 'bcp "select col1, col2 from 庫名.dbo.表名" queryoute:\dt.xls -c -sservername -usa -ppassword'"

insert into opendatasource( 'microsoft.jet.oledb.4.0',

'data source="c:\temp.xls";userid=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;datasource=c:\training\inventur.xls')...[filiale1$] 

(bestand, produkt) values (20, 'test') 

總結:利用以上語句,我們可以方便地將sql server、access和excel電子**軟體中的資料進行轉換,為我們提供了極大方便!

ADO操作外部資料

1 在vbe介面中 工具 引用勾選microsoft activex data object x.x library 2 連線 sub test dim conn as new adodb.connection conn.open provider microsoft.ace.oledb.12.0 ...

使用ADO操作外部資料

勾選microsoft activex data object x.x library 開啟連線 conn.open provider microsoft.ace.oledb.12.0 data source c data edata.xlsx extended properties excel 1...

mysql建立資料庫和表操作外部SQL檔案

1.顯示所有資料庫 show databases 或show databases g.2.使用資料庫 use 資料庫名 3.顯示資料庫的所有表 show tables 4.查詢表的所以記錄 select from 表名 5.where查詢 select from 表名 where 列名 6.顯示表結...