异地数据库服务器数据统一方案(分可再加) 对了,服务器都是SQL SERVER 7。0 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 B,C用订阅和发布来进行处理啊。D,E可以通过拨号的方式进行复制啊。具体我也没有应用过。你看一下帮助吧。 A 和 B C做合并复制可以实现C D 拨号做订阅发布也可以实现,但如何让系统自动拨号,没试过,不太清楚,要向你学习了... ;) 数据传输量大的话 数据会很慢我做过这样一个方法你可以参考,但有些和你不同1 需要改动表结构2 需要手工拨号文件传输总分部数据写procedure把新增修改记录导出文本,这样需要在表中添加判断标志,如:1 未传传输,2 已上传把文本传到其他服务器,这个可以用前台软件写个传输文件程序(或者直接用master..xp_cmdshell),取指定服务器目录内的文件,再用过程导入数据库,导入时进行数据过滤程序可以这样写过程 比如表名叫table 状态字段为state (1 未传传输,2 已上传)CREATE PROCEDURE sp_convert --数据转换过程with recompile ,encryptionasdeclare @bcp varchar(600), @path char(100), @file char(200), @user char(10), @mdate char(8) @mdept char(5), @passwd char(8) if @@TRANCOUNT >0 COMMIT TRAN select @user=suser_name() select @passwd=password from login where code=ltrim(rtrim(@username)) --用户登录表 select @path=ltrim(rtrim(up_path))+'download\' from parm --运行参数表 包括文件传输路径 select @mdate=convert(char(8),cast(open_close as datetime),112) select @file='file'+@mdate 得到带日期的txt文件 --convert data to txtselect @bcp='bcp "select * from dbname..table where state=1 " queryout '+ltrim(rtrim(@path))+ltrim(rtrim(@file))+'.txt'+' -c -t, -U '+@user+'-P '+@passwd --选择未传输数据导出exec master..xp_cmdshell @bcpbegin tranupdate dbname..table set state=1 where ct_state=1 --更新状态commit tranCREATE PROCEDURE sp_copyfile --文件copy过程with recompile,encryptionasdeclare @path char(100), @copy char(300), @user char(10), @passwd char(8), @bcpname char(300)if @@TRANCOUNT >0 COMMIT TRAN select @usere=suser_name() select @passwd=password from login where code=ltrim(rtrim(@username)) select @path=ltrim(rtrim(up_path))+'upload\' from parm --copy files to serversselect @copy='copy '+ltrim(rtrim(@path))+'file*.txt '+ltrim(rtrim(@path))+substring(convert(char(8),getdate(),112),7,2)exec master..xp_cmdshell @copyselect @copy='del '+ltrim(rtrim(@pathname))+'file*.txt' --copy完成删除文件exec master..xp_cmdshell @copyname if @@TRANCOUNT >0 COMMIT TRAN return 总部每天做日结处理,也用同样的方法导出数据成文本,在分部与总部联接传输数据据同时把总部数据传入分部 不好意思,我也没有用自动拨号!!!如果是用外部程序来导的话,我觉得方案比较多,但现在想直接在SQL 里解,不知道行不行! 应该可以处理啊。呵呵~~~就象我说的方案啊。(哦,我就是feitianliuyun啊。号因为改信箱,重新获取密码失败丢了。在这里我要谴责CSDN。)这样可以实现自动处理。不需要人为干预啊。 TO :liuyun2003(流云) 是啊,但能不能具体点儿,我知道是可以的,但现在就是没有解决!主要是C、D,PUSH还是PULL,还有怎么与Windows的同步帮定在一起? SQL语句求教,在线等,跪求高手解决~~~ 还要再次麻烦大家,谢谢! 怎样在选择的列中增加一自动增加的列? 求一段多字段模糊查询的存储过程 怎么写公式让一列的值等于前几列值的和 特急~~~存储空间不足问题 在网上没有找到正确解决方案 求一sql语句,大家进来瞧一瞧!!! 请教一个关于SQL2000下的一个问题 关于存储过程中的库名如何使用动态参数实现! 阳历和阴历的转换 数据库查询问题 大家请再帮我看看?
要向你学习了... ;)
数据传输量大的话 数据会很慢
我做过这样一个方法你可以参考,但有些和你不同
1 需要改动表结构
2 需要手工拨号文件传输总分部数据写procedure把新增修改记录导出文本,这样需要在表中添加判断标志,
如:1 未传传输,2 已上传把文本传到其他服务器,这个可以用前台软件写个传输文件程序(或者直接用
master..xp_cmdshell),取指定服务器目录内的文件,再用过程导入数据库,导入时进行数据过滤
程序可以这样写过程 比如表名叫table 状态字段为state (1 未传传输,2 已上传)CREATE PROCEDURE sp_convert --数据转换过程
with recompile ,encryption
as
declare
@bcp varchar(600),
@path char(100),
@file char(200),
@user char(10),
@mdate char(8)
@mdept char(5),
@passwd char(8)
if @@TRANCOUNT >0
COMMIT TRAN
select @user=suser_name()
select @passwd=password from login where code=ltrim(rtrim(@username)) --用户登录表
select @path=ltrim(rtrim(up_path))+'download\'
from parm --运行参数表 包括文件传输路径
select @mdate=convert(char(8),cast(open_close as datetime),112)
select @file='file'+@mdate 得到带日期的txt文件
--convert data to txtselect @bcp='bcp "select * from dbname..table where state=1 " queryout '+ltrim(rtrim(@path))+ltrim(rtrim(@file))+'.txt'+' -c -t, -U '+@user+'-P '+@passwd --选择未传输数据导出
exec master..xp_cmdshell @bcp
begin tran
update dbname..table set state=1 where ct_state=1 --更新状态
commit tran
CREATE PROCEDURE sp_copyfile --文件copy过程
with recompile,encryption
as
declare
@path char(100),
@copy char(300),
@user char(10),
@passwd char(8),
@bcpname char(300)if @@TRANCOUNT >0
COMMIT TRAN
select @usere=suser_name()
select @passwd=password from login where code=ltrim(rtrim(@username))
select @path=ltrim(rtrim(up_path))+'upload\' from parm
--copy files to servers
select @copy='copy '+ltrim(rtrim(@path))+'file*.txt '+ltrim(rtrim(@path))+substring(convert(char(8),getdate(),112),7,2)
exec master..xp_cmdshell @copy
select @copy='del '+ltrim(rtrim(@pathname))+'file*.txt' --copy完成删除文件
exec master..xp_cmdshell @copyname
if @@TRANCOUNT >0
COMMIT TRAN
return 总部每天做日结处理,也用同样的方法导出数据成文本,在分部与总部联接传输数据据同时把
总部数据传入分部
如果是用外部程序来导的话,我觉得方案比较多,但现在想直接在SQL 里解,不知道行不行!