--访问不同计算机上的数据库(远程只要联好网就一样)
--如果经常访问或数据量大,建议用链接服务器--创建链接服务器
exec sp_addlinkedserver  'server_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin ' server _lnk','false',null,'用户名','密码'
exec sp_serveroption ' server _lnk','rpc out','true' --这个允许调用链接服务器上的存储过程
go--查询示例
select * from srv_lnk.数据库名.dbo.表名--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名go
--以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('SQLOLEDB'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)--导入示例
select * into 表 from openrowset('SQLOLEDB'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)

解决方案 »

  1.   

    2台机都设为开机自动运行sql服务连接一个非运行的服务,肯定是很慢的
    除非通过别的途径(如检查本机的进程)检测到
    或者预先检测,把结果存起来
      

  2.   


    企业管理器中的设置: 
    1.在企业管理器中,选择菜单上的"工具",再选择"选项" 
    2.在弹出的"SQL   Server企业管理器属性"窗口中,点击"高级"选项卡 
    3.在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如   20. 
      

  3.   

    先用API函数判断网络中目标机器有没有开机,如果没有则不进行数据库的连接操作。这样不知道可不可以满足楼主的要求。
      

  4.   

    EXEC sys.sp_configure N'remote login timeout (s)', N'连接超时秒数'--连接超时设的短点就好了
    GO
    RECONFIGURE WITH OVERRIDE
    GO
      

  5.   

    企业管理器中的设置: 
    1.在企业管理器中,选择菜单上的"工具",再选择"选项" 
    2.在弹出的"SQL  Server企业管理器属性"窗口中,点击"高级"选项卡 
    3.在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如  20. 
      

  6.   

    用API函数判断网络中目标机器有没有开机,然后再看数据库端口通不通
      

  7.   

    谢谢大家的回答,但是大家的答案还不能满足我
    我想知道,假设两台服务器中,其中以一台服务器断掉了的话,用正常的服务器区连接断了的服务器,这里面要耗费很长的时间,到最后才返回一个SQL不存在活拒绝访问的提示我现在想知道是,怎样是缩短正常服务器连接断了的服务器的时间。
      

  8.   

    declare @srvr nvarchar(128), @retval int;set @srvr = 'my_linked_srvr';begin try    exec @retval = sys.sp_testlinkedserver @srvr;end trybegin catch    set @retval = sign(@@error);end catch;if @retval <> 0  raiserror('Unable to connect to server. This operation will be tried later!', 16, 2 );