我想把本地数据库中的几个表备份到局域网中另一台计算机上的备份数据库中,请教大家
第一,有什么好的办法判断备份数据库是否可用?
第二,能不能有好办法,主库的几个表中的数据备到备份库中的相同结构的表中。我想到的办法是把主库的中数据全部查出来放到变量中然后清空备份库中表中的数据,然后一条一条的插入备库的表中?
在这谢谢大家了。  

解决方案 »

  1.   

    1、以前有过类似问题,建议查询
    2、bcp方法也是可以的
      

  2.   

    试试,用ado连主库,然后执行SQL
    insert into table  IN [ODBC][ODBC;Driver=SQL Server;UID=sa;PWD=;Server=xxx.xxx.xxx.xxx;DataBase=Master;] select * from table where 条件
    其中xxx.xxx.xxx.xxx为备份库IP
      

  3.   

    或者创建链接服务器也是一个不错的方法
    ----创建链接服务器
    exec sp_addlinkedserver  'szgky_web','','SQLOLEDB','210.51.168.146'
    exec sp_addlinkedsrvlogin 'szgky_web','false',null,'UserName','Password'exec sp_serveroption 'szgky_web','rpc out','true'  --这个允许调用链接服务器上的存储过程
    --以后不再使用时删除链接服务器
    exec sp_dropserver 'szgky_web','droplogins'
    --查询示例
    select * from szgky_web.www_szgky_com.dbo.PassengersBound
    select * from szgky_web.www_szgky_com.UserName.ticket--8 s--导入示例
    INSERT INTO  szgky_web.www_szgky_com.dbo.PassengersBound select top 100 * from  PassengersBound--导出示例
    select * into #bb from szgky_web.www_szgky_com.dbo.PassengersBound--删除示例
    delete szgky_web.www_szgky_com.dbo.PassengersBound--更新示例
    update szgky_web.www_szgky_com.dbo.PassengersBound set ComputerName=''
    --执行存储过程
    exec szgky_web.www_szgky_com.UserName.sch_HBXX '2004-01-01','2006-07-31','蛇口','珠海(九洲)'
    --Truncate Table
    SELECT * FROM OPENQUERY([szgky_web],'
    SET NOCOUNT ON
    SET IMPLICIT_TRANSACTIONS OFF
    SELECT ''执行完成''  
    USE [www_szgky_com]
    TRUNCATE TABLE PassengersBound
    ')--SELECT ''执行完成''  用于代替 OPENQUERY 必须返回数据