exec sp_addlinkedserver @server='abc',@provider='sqloledb',@srvproduct='abc',@datasrc='10.2.1.1' 
GOexec sp_addlinkedsrvlogin  @rmtsrvname='abc',@useself='false',@locallogin='sa',@rmtuser='tt',@rmtpassword='tt' 
GOexec sp_addlinkedserver @server='xyz',@provider='sqloledb',@srvproduct='abc',@datasrc='127.0.0.1' 
GOexec sp_addlinkedsrvlogin  @rmtsrvname='xyz',@useself='false',@locallogin='sa',@rmtuser='yy',@rmtpassword='yy' 
GOInsert into XYZ.MPPS_BAK.DBO.SMMSS_200907 
 
select *  from ABC.MPPS_BAK.DBO.SMMSS_BAK where substring(smm_num,2,6)='200907' 
GOexec sp_droplinkedsrvlogin 'xyz' ,'sa' 
GOexec sp_dropserver  'xyz' 
GOexec sp_droplinkedsrvlogin 'abc' ,'sa' 
GOexec sp_dropserver  'abc' 
GO上述方法我在几百万的表中,操作过,可以实现,时间比较长,但 substring(smm_num,2,6)='200907'  这个条件里面有几百万,而SMMSS_BAK 表已经有数千万数据了,这中间怎么做迁移呢?请教各位了,谢谢!

解决方案 »

  1.   

    我都做了三个多小时了,都没有完成SMMSS_BAK 里面有数千万条数据, 而我需要搬动的内容也有8百多万条,这会有多大影响呢,另外,sqlserver对cpu会造成影响吗,因为还有其他服务也在应用的,这么搞会将目的服务器拖慢速度吗?
      

  2.   

    呵,这恐怕也有些难度和不便,数据库备份后连log文件有10G的大小阿,里面的短信表实在太大了