问下用sqlserver的bcp工具能不能将access库的某个表导入sql库(100分)

  • 主题发起人 主题发起人 Cody.w
  • 开始时间 开始时间
C

Cody.w

Unregistered / Unconfirmed
GUEST, unregistred user!
如题。现我要把access库的某个大数据(50万)表导入到sqlserver库,用OPENROWSET导入会非常慢,7分多钟。试过用DTS导才几秒钟,因是要在delphi写代码导入,不能用DTS。不知道bcp能否实现,望知道的富翁帮忙赐教。
 
很簡單,可以寫SQL語句在SQL server 2000中讀取到Access表
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:/abc.mdb";User ID=Admin;Password=;')...salary
其中D:/abc.mdb為Access路徑,Salary為表名,表名前面有三點(注意)

你把這句在查詢分析器中執行一下,可以執行的話,就可以放到Adoquery.sql中,然後連到SQL server,這樣就可以讀取了,你要導數據的話就再經過處理一下,如果字段相同的話,就可以用下面的語句:
Insert into TableName
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:/abc.mdb";User ID=Admin;Password=;')...salary
否則就還要進行一下別的處理!

唉,我剛剛上SQL server 2000查幫助,做出來的,很累的哦,你一定要多給點分哦!
 
观注一下
 
to gaobangsheng
呵呵,谢谢,辛苦你了,不过你没看明白我题目啊~
OpenDataSource 和 OPENROWSET 的方法我都知道,但效率太慢了,我问的是bcp[:)]
 
bcp和bulk都不行.它们导入的是文本文件,或是二进制文件.
 
to hityou:
那有什么其它方法吗?delphi或sql的都行,效率。。。。
 
我试了一下,从access导出倒文本,用了7w的数据,2s就能导出.
select * into [Text;Database=c:/].22.txt from table
至于在往sqlserver倒我就没试了,
 
多人接受答案了。
 
后退
顶部