社区
数据库及相关技术
帖子详情
如何实现两个结构相同数据库SQl server 的合并 急,解决就给分!!!!!
lulei2050
2005-08-27 05:34:14
我现在有多个Sqlserver 的服务器,想实现不同数据库之间的数据的合并。合并的要求如下:
1、不通过网络,通过数据备份成文件,然后传输文件到合并机,通过程序实现把文件中的数据合并到合并机的数据库中。
2、通过程序来实现,不使用sqlserver 提供的企业管理器
3、不同服务器上的数据结构完全相同
...全文
1098
10
打赏
收藏
如何实现两个结构相同数据库SQl server 的合并 急,解决就给分!!!!!
我现在有多个Sqlserver 的服务器,想实现不同数据库之间的数据的合并。合并的要求如下: 1、不通过网络,通过数据备份成文件,然后传输文件到合并机,通过程序实现把文件中的数据合并到合并机的数据库中。 2、通过程序来实现,不使用sqlserver 提供的企业管理器 3、不同服务器上的数据结构完全相同
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weill
2005-08-30
打赏
举报
回复
当然了,你也许还要问我用完后怎么分离你的数据库。呵呵。
本来,这些你都可以在CSDN的SQL专区找到相关资料的,这儿就顺便给你写一下吧。
简单的SQL分离语句:
EXEC sp_detach_db 'NewDB', 'true'
分离后你就可以直接把附加入的数据库文件给删了。
提示的一点是,如果这个要分离的数据库当前正有人使用和联接,你就分离不了它,呵呵。怎么办?
那就麻烦大了些,一般得写存储过程先停止所有联接进程。在这儿就不多说了,你自个去找找资料吧。
至于两个数据库之间的数据怎么导入,也应该你自个去想了。不难的。如果是要一条一条进行查对,判断,在同机上,可以用BCB的ADO去控制,保险一些,当然,写存储过程也是可以考虑的,特别是SQL服务器在网络上。
weill
2005-08-30
打赏
举报
回复
如果是按我的方法,那么,传过来的数据库文件的文件名可以不作任何更改,但必需同时附加入你的本地SQL数据库,当然是附加为另一个不同名称的数据。然后的操作,就是两个数据库之类数据的对传了。
数据库附加操作的基本SQL命令:
EXEC sp_attach_db @dbname = N'NewDB',
@filename1 = N'D:\Microsoft SQL Server\MSSQL\Data\NewDBFile.mdf',
@filename2 = N'D:\Microsoft SQL Server\MSSQL\Data\NewDBFile_log.ldf'
上面的语句中,第一行决定新附加入的数据库的库名为"NewDB"
第二行是说,数据库文件为"D:\Microsoft SQL Server\MSSQL\Data\NewDBFile.mdf"
第三行是说,数据库的log文件为"D:\Microsoft SQL Server\MSSQL\Data\NewDBFile_log.ldf"
这是附加的SQL语句基本操作。
如果要运用到BCB编程中,那么,你先要使用程序合成你想要发送的字串(主要是数据库名和文件名),然后使用ADO直接向SQL服务器发送就可以了。
示例如下:
//SQL语句合成部分,请据你实际情况改动。
String SQLStrLS,SQLStrLS1,SQLStrLS2,SQLStrLS3;
SQLStrLS1 = "EXEC sp_attach_db @dbname = N'NewDB',";
SQLStrLS2 = "@filename1 = N'D:\Microsoft SQL Server\MSSQL\Data\NewDBFile.mdf',";
SQLStrLS3 = "@filename2 = N'D:\Microsoft SQL Server\MSSQL\Data\NewDBFile_log.ldf';
SQLStrLS = SQLStrLS1+SQLStrLS2+SQLStrLS3;
//ADO动态生成,为发送SQL语句做准备
TADOConnection* ADOCnTmp=new TADOConnection(Application);
TADOQuery* ADOQryTmp=new TADOQuery(Application);
//向主机联接的字串,请据实际情况修改下一行。
ADOCnTmp->ConnectionString = "Provider=SQLOLEDB.1;Password=youPass;Persist Security Info=True;User ID=youID;Initial Catalog=master;Data Source=127.0.0.1";
ADOCnTmp->LoginPrompt =false;
ADOQryTmp->Connection =ADOCnTmp;
ADOQryTmp->SQL->Add(SQLStrLS);
ADOQryTmp->ExecSQL();//发送SQL语句。
//以下清理生成的ADO,以回收内存资源。
ADOQryTmp->Active =false;
ADOCnTmp->Connected =false;
delete ADOQryTmp;
delete ADOCnTmp;
zjcxc
2005-08-30
打赏
举报
回复
用bcp行吗?
1. bcp源库的所有表到指定目录,并且根据表名生成不同的文本文件名
2. 压缩生成的所有文件为一个压缩包
3. 传递到目标服务器
4. 解压缩到指定目录
5. 使用bcp根据目标数据库的表从对应目录提取相应的文件导入数据实现合并.
sczyq
2005-08-29
打赏
举报
回复
同意,无法完全使用备份文件来操作。
weill
2005-08-29
打赏
举报
回复
1、如果说,在合并时完全脱离SQL服务器来做,我想,不是一般的人能做到的。
不过,为什么硬要给自个找麻烦呢?为什么不能在合并的机器上安装一个SQL服务器呢?
2、如果合并的机器上有SQL服务器,那就好办了,对于熟练使用SQL企业管理器的人来说,都不要进行什么编程,附加入两个不同的数据库文件(当然了,每个数据库二个文件一共是四个文件)。然后对相应的表进行导入操作就完事。
3、当然了,也许操作的人是菜鸟,那就没办法了,只能你给他写好程序啦。那么,写就写吧,SQL上手动操作能办到的事,用BCB向其发命令,也不是什么难事,容易得很啊。实在不行,在合并的机器上写好存储过程,然后用BCB写的程序触发一下,也是非常容易的。
写了这么多,你应该能完成你的任务了吧,呵呵。
我不懂电脑
2005-08-29
打赏
举报
回复
通过程序来实现
可以用BCB调用Sql Server的DTS来进行。如何在c++builder中使用dts?请看
http://community.csdn.net/Expert/topic/3443/3443157.xml?temp=.6285364
lulei2050
2005-08-29
打赏
举报
回复
你好,非常感谢大家给我的建议,特别是weill提供的方法,现在我有点问题想想请教 weill
1、现在我们的合并机子上面有sql,并且已经运行了这个同名的数据库
2、现在有以下两点,我也是新手,特请教
a/如何通过程序来附加数据库
b]现在传过来的文件名(数据库名)和我的和并机中的数据库名完全相同,是不是要更改,要不如何附加呢
3、请各位高手说得明白以一点,最好附一部分代码,
4、如果解决了,重谢
lulei2050
2005-08-28
打赏
举报
回复
你好,谢谢你给我的回复,现在我对你的恢复不大明白,你能不能说得更详细一点:
现在我的问题是:
1、两个数据库的结构完全一致,只是纪录的不同。
2、至于一个数据库中的表的关系,我没有建立关系
3、现在我想实现的通过命令的方式在一台数据库上把数据备成为一个文件,
4、该文件通过网络e_mail的方式或者u盘的方式传到合并数据库所在的计算机
5、通过命令的方式来实现数据的合并,当然对于重复的纪录,我们要进行别处理
6、现在是两台数据库之间不能进行直接的网络通讯
7、我想通过各位高人,实现我这一问题,谢谢
sczyq
2005-08-28
打赏
举报
回复
如果知道表关系,那么就很简单了,按表的主次关系,一个一个完成,如果表的主次关系不是很明确,则需要先进行分析,SQL Server 应当能够分析出来。
其次,对每个表的数据合并,只要检查唯一性即可(如编码表,有主鍵,若存在,就不要再复制了)
lulei2050
2005-08-28
打赏
举报
回复
各位高人,怎么不回复一下,我急需解决问题,在线等。。。。。
3天掌握
SQL
Server
2012
数据库
SQL
Server
是由Microsoft开发和推广的关系
数据库
管理系统(DBMS),Microsoft
SQL
Server
2012 是一个全面的
数据库
平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft
SQL
Server
数据库
引擎为关系型数据和
结构
化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序 。 黄强老师针比较稳定且较新的
SQL
SERVER
2012版本演示
数据库
的安装使用,
SQL
(Structured Query Language)语言、T-
SQL
语言,
数据库
的增删改查、函数、存储过程、事务等重要知识点,让学员轻松入门并快速掌握关系型
数据库
!
SQL
Server
多个
数据库
合并
1、创建
两个
数据库
A_TEST,B_TEST。 2、将
数据库
A
合并
到
数据库
B。选中
数据库
,右键——任务——导出数据。 3、转到导出向导,选择下一步。 4、输入服务器名称,选择身份验证(默认Windows),选择导出的
数据库
名。然后“下一步”。 5、输入目标服务器名称(不跨服务器:服务器名称和上一步导出时的一致;跨服务器:需要输入服务名称),选择要
合并
的目标
数据库
B_TEST...
数据库
--
Sql
Server
详解
数据库
–
SQL
Server
详解 零、文章目录 一、
数据库
概念 1、
数据库
基本概念 (1)
数据库
(DataBase:DB)
数据库
是是按照数据
结构
来组织、存储和管理数据的仓库。---->存储和管理数据的仓库 (2)
数据库
管理系统(Database Management System:DBMS) 是专门用于管理
数据库
的计算机系统软件。
数据库
管理系统能够为
数据库
提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。 注意:我们一般说的
数据库
,就是指的DBMS 2、
数据库
同步
两个
SQL
Server
数据库
如何同步
两个
SQL
Server
数据库
的内容?程序代码可以有版本管理CVS进行同步管理,可是
数据库
同步就非常麻烦,只能自己改了一个后再去改另一个,如果忘记了更改另一个经常造成
两个
数据库
的
结构
或内容上不一致.各位有什么好的方法吗?
分
发与复制 用强制订阅
实现
数据库
同步操作 大量和批量的数据可以用
数据库
的同步机制处理://说明:为方便操作,所有操作均在发布服务器(
分
发服务器)上操作,并使用推模
如何同步
两个
SQL
Server
数据库
的内容?
同步
两个
SQL
Server
数据库
如何同步
两个
SQL
Server
数据库
的内容?程序代码可以有版本管理CVS进行同步管理,可是
数据库
同步就非常麻烦,只能自己改了一个后再去改另一个,如果忘记了更改另一个经常造成
两个
数据库
的
结构
或内容上不一致.各位有什么好的方法吗?
分
发与复制 用强制订阅
实现
数据库
同步操作 大量和批量的数据可以用
数据库
的同步机制处理://说明:为方便操作,所有操作均在发布服务器
数据库及相关技术
1,178
社区成员
18,939
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章