有時我們需要從.dbf檔案中將資料匯入到sql2005中,當然這個可能出於各種原因,比如說:原來專案是用的.dbf的資料庫,而現在新的專案裡使用的是sql2005的資料庫,但原來的資料又不能丟,這時就需要這類的操作。其實這樣的操作是經常的,比如:sql2005到oracle中,或是從oracle到sql2005/2008;最近遇到了這樣的問題,在網上尋找了很久,終於得到了乙個解決的方法,在此記錄一下。
在sql2005中,若要讀取.dbf的檔案的資料,就得啟用sql2005的高階元件,叫:ad hoc distributed queries,若沒有啟用就會出現以下的錯誤提示資訊:
所以需要啟動它,**如下:
---啟用ad hoc distributed queries:
exec
sp_configure
'show advanced options',
1reconfigure
exec
sp_configure
'ad hoc distributed queries',
1reconfigure
select結果如下:*from
openrowset('
microsoft.jet.oledb.4.0',
'dbase 5.0;database=c:/code/',
'select * from [td_mzdm.dbf]
')
我們已經讀取到了dbf檔案中的資料,那麼要將它存放在一張表中就很明顯了,使用以下**可以將其資料與表結構匯入到sql2005中:
select結果與上面是一樣的,這裡就不截圖了*into
#td_mzdm
from
openrowset('
microsoft.jet.oledb.4.0',
'dbase 5.0;database=c:/code/',
'select * from [td_mzdm.dbf]')
---查詢臨時表
select
*from
#td_mzdm
若是你的sql2005中已經有一張表結構與dbf檔案中表結構相似(就是可以把資料匯入的表),那麼也可以使用以下的語句完成資料的匯入:
insert當然我們也可以向dbf檔案中插入資料,其方式差不多,**如下:into
#td_mzdm
select
*from
openrowset('
microsoft.jet.oledb.4.0',
'dbase 5.0;database=c:/code/',
'select * from [td_mzdm.dbf]
')
insert結果得到受影響的行數:into
openrowset('
microsoft.jet.oledb.4.0',
'dbase 5.0;database=c:/code/',
'select * from [td_bylb.dbf]')
select
*from
dbo.td_bylbdm
-關閉ad hoc distributed queries:
exec
sp_configure
'ad hoc distributed queries',
0reconfigure
exec
sp_configure
'show advanced options',
0reconfigure
向mysql中匯入 sql檔案
我這裡有兩個.sql檔案 1.表的.sql檔案 2.表中資料的.sql檔案。顯然我們匯入的步驟是 建立乙個資料庫 匯入表的.sql檔案 匯入表中資料的.sql檔案 建立資料庫 create database ssmdemo 使用此資料庫 此時資料庫中沒有表 use ssmdemo 將表的.sql檔案...
sql2005匯入 匯出Excel
在測試環境中的資料不想在正式環境中再次輸入,就直接匯出到excel,然後再匯入正式庫中,對sql語句不是太熟悉,直接用操作嚮導完成。在資料庫單擊右鍵的任務中選擇匯出資料,按操作嚮導把資料匯入到excel中。在正式資料庫中選擇匯入資料,注意在選擇資料來源的時候 目標可以建立乙個臨時表 資料庫中沒有的表...
實現Excel資料匯入到SQL2005中的方法
前段時間由於工作需要,設計了乙個基於infopath sql的查詢系統,設計完成後,突然發現查詢系統所需要的原始資料都是存放在excel文件,如果將每條記錄重新輸入到sql中,那過程將非常繁瑣,通過在網路查詢得到二種方法,但過程還是不太方便。現將以下幾種方法彙總以下 一 在程式中,用ado.net。...