关于数据导入的问题(200分)在线等待(200分)

  • 主题发起人 主题发起人 wzquan
  • 开始时间 开始时间
W

wzquan

Unregistered / Unconfirmed
GUEST, unregistred user!
Sqlserver服务器1上有一个数据库database1,里面有一个表table1(有5000条记录);把表table1的数据导入到另一个sqlserver服务器的数据库database2下的table2(已经有20万条记录)表中,我用逐行写入的方式,大概需要1个小时,由于是网络传输,经常出现断掉现象。
谁有好的解决方法,我奉送200分。
 
先把数据导入Access, 再拷贝Access文件,在另一个服务器上从Access导入Sql Server
 
to:david_jkl
我的意思是用户只要点击“数据上报”按钮,就可以自动传输,现在的用户都比较挑剔。
 
既然表都有了,用SQL insert语句不可以?还要一条一条写????
 
to:LanHer
可不可以给个Insert into 语句?
 
先把数据导入Access, 再拷贝Access文件,在另一个服务器上从Access导入Sql Server
然后用下面的语句就行了吧,你试试(语句应该没错),我不太清楚^v^
Insert into table2
select * from table1
 
谢谢各位了,我已经解决了
两个SqlServer服务器之间的数据传输:
两个服务器上不同数据库之间有一个相同名字的表:置换月度数据表(字段名和顺序完全相同)
==========================================================
在Sqlsrever中是这样写的:
INSERT INTO 置换月度数据表
SELECT 置换月度数据表.*
FROM OPENROWSET('SQLOLEDB', '10.70.17.15';
'sa';
'jcjjpj2005',
'SELECT * FROM ytdjjymdb.dbo.置换月度数据表 where (年月>=200501 and 年月<=200504)') as 置换月度数据表
==========================================================================
在delphi中是这样写的
procedure TForm1.Button1Click(Sender: TObject);
var
mysqlstr:string;
begin
mysqlstr:='INSERT INTO 置换月度数据表 SELECT 置换月度数据表.* FROM OPENROWSET(''SQLOLEDB'', ''10.70.17.15'';
''sa'';
''jcjjpj2005'',''SELECT * FROM ytdjjymdb.dbo.置换月度数据表 where (年月>=200501 and 年月<=200504)'') as 置换月度数据表';
adoquery1.sql.Append(mysqlstr);
adoquery1.ExecSQL;
application.messagebox('数据上报完毕','ddd',0);
end;
 
如果在数据导入时采用Insert和Update混合模式进行,不知各位高手有什么好的建议和方法。
即:先对目标数据库进行查重处理,如果没有符合条件的数据,则插入(insert),否则,修改(update)。
 
先对目标数据库进行查重处理,重复的删除
然后插入(insert),
 
嘿嘿,先update然后在insert不就ok了
 
to:ivy1982
就像你所说的那样,速度也是比较慢的,我已经试过了。
这样用速度可能稍快一些,但还是不行:
try
insert into
except
update
end;
 
后退
顶部