
我觉得可以通过命令先转化为excel格式,然后再截取相关(相同)字段另存为一个文件,最后再在另一数据库中导入新产生的excel文件
第一步:
mdf和ldf是SQL SERVER的数据库数据文件和日志文件,可以通过SQL SERVER的数据转换服务转为excel。
下面以SQL SERVER的企业管理器里面 2000 为例说明。
首先这个mdf文件如果是从别的地方考过来的,需要先附加数据库,方法为SQL SERVER的企业管理器里面,右键“所有任务”-“附加数据库”,找到这个mdf文件确定即可。
下一步就是转换了。在方法如下:
在SQL SERVER的企业管理器里面,选择要转换的数据库,“所有任务”-“导出数据库”,源数据不用动,下一步目的数据,驱动选择带excel字样的那个,下几步选择好要转换的数据库表,自己试试吧,很容易的。
第二步:
select into 你的sql数据库表 from openrowset('MicrosoftJetOLEDB40','Excel 80;Database=c:\xls', 'select from [sheet_name$]')excel本来是一中数据库所以能用t-sql语言来 *** 作数据sheet_name$代表的是工作表不用区分开来的它所替代的是excel表中里面Sheet1Sheet2这类的工作表我给你上张图
用过程,当然了要先建立连接declarevsql
varchar2(4000);tname
varchar2(100);beginfor
t
in
(select
from
all_tables
where
owner='ENET')
loop
tname:=ttable_name;
vsql:='create
table
'||tname||'
as
select
from
ENET'||tname||'@to_enetusoraclecom
;';--
dbms_outputput_line(vsql);end
loop;end;
当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大的挑战。幸好SQL Server为我们提供了强大、丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理。
在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理;调用命令行工具BCP处理数据;使用数据转换服务(DTS)对数据进行处理。这三种方法各有其特点,下面就它们的主要特点进行比较。
一、使用方式的比较
1 使用Transact-SQL进行数据导入导出
我们很容易看出,Transact-SQL方法就是通过 SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。如果是在不同的SQL Server数据库之间进行数据导入导出,那将是非常容易做到的。一般可使用SELECT INTO FROM和INSERT INTO。使用 SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。而INSERT INTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。
SELECT INTO table2 FROM table1 --table1和table2的表结构相同
INSERT INTO table2 SELECT FROM table3 --table2和table3的表结构相同
当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。首先要解决的是如何打开非SQL Server数据库的问题。
在SQL Server中提供了两个函数可以根据各种类型数据库的OLE DB Provider打开并 *** 作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不同之处主要有两点。
(1) 调用方式不同。
OPENDATASOURCE的参数有两个,分别是OLE DB Provider和连接字符串。使用OPENDATASOURCE只相当于引用数据库或者是服务(对于SQL Server、Oracle等数据库来说)。要想引用其中的数据表或视图,必须在OPENDATASOURCE()后进行引用。
在SQL Server中通过OPENDATASOURCE查询Access数据库abcmdb中的table1表
以下是引用片段:
SELECT FROM OPENDATASOURCE('MicrosoftJetOLEDB40',
'Provider=MicrosoftJetOLEDB40;Data Source=abcmdb;Persist Security
Info=False')
table1
OPENROWSET相当于一个记录集,可以将直接当成一个表或视图使用。
在SQL Server中通过OPENROWSETE查询Access数据库abcmdb中的table1表
以下是引用片段:
SELECT FROM OPENROWSET('MicrosoftJetOLEDB40', 'abcmdb';
'admin';'','SELECT FROM table1')
最简单的办法就是用个ACCESS,无论你用什么代码来写,或者直接 *** 作SQL,
如果是直接 *** 作SQL那更简单,他可以直接建立 *** 作查询,两个地方的数据库也可以用OpenRowSet关键词来取得联系。如果是用代码来编译程序做这样的 *** 作,我的建议是用如PetShop和直接用个ACCESS来做跨数据库的数据表 *** 作。
ACCESS直接做远程网络连接表(SQL远程数据库可以是任意地方的,只样能与当前主机能PING上)在ACCESS里做查询语句,或者直接做一个更新查询,代码调用的时候直接查询更新查询就达到了你的目的。如果是不借助ACCESS或者是借助ACCESS要用纯代码也有办法:
一个是用ACCESS的ODBC()库功能他的表结构是:
Select from 表名 IN ODBC[ODBC:Driver={SQL Server};Server=服务器IP地址;UID=数据库用户名;PWD=密码;DataBase=数据库名称]
你把上面的查询当成一个表,把要插入的表和目的表用上面的格式写下来,拼接字符串就达到了目的。
OpenROWSET是SQL官方提供的一种办法,两个异地数据库,可以用OPENROWSET关键字来做连接,网上代码多的是。
PETSHOP是Net提供的一种方法,直接用NET连接数据库,用PETSHOP象ACCESS查询视图一样做查询表,但是我觉得这样做不好,程序运行效率低,而且相当不灵活。
一个表更新到另一个表要做更新检查,一边插入查询以便做连接查询匹配没有的数据才可以查询,重复的不允许插入,代码这么写:
INSERT INTO 目的表 SELECT 字段名称, 字段名称1, FROM 处理表 INNER JOIN 目的表 ON 处理表匹配字段=目的表匹配字段 WHERE ((目的表字段) IS NULL)
把筛选好的表插入你的目的表,数据库问题解决了,插入检查还要解决啊,你琢磨一下。
以上就是关于怎么将数据库中的记录导入到另一个数据库中全部的内容,包括:怎么将数据库中的记录导入到另一个数据库中、怎样在不同的oracle数据库间导入导出表、SQLServer中数据导入导出三种方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)