试试这个呢?EXEC sp_addlinkedserver 
   'Test', --名称
   '', 
   'MSDASQL',
   NULL,
   NULL,
   'DRIVER={SQL Server};SERVER=服务器名;UID=sa;PWD=密码;'
GO
-------以上为添加连接服务器select * from  Test.库名.dbo.表名

解决方案 »

  1.   

    EXEC sp_addlinkedserver 
       'Test', --名称
       '', 
       'MSDASQL',
       NULL,
       NULL,
       'DRIVER={SQL Server};SERVER=服务器名;UID=sa;PWD=密码;'
    GOselect * from  Test.库名.dbo.sysobjects where ....
      

  2.   

    我的意思是当服务器名、用户名或者密码发生变化,导致连接不上相关的表时,系统能够提示错误信息。
     txlicenhe(不做技术高手) 提供了如何连接不同机器名的数据库方法。和我的意思不一样。
      

  3.   

    检查远程服务器是否连接着:
    if exists (select * from master..sysprocesses where hostname = remoteservername)
      

  4.   

    我想你的意思上判断那个连接是否存在而且好使对吧?这个好象只能实际连接一次然后通过@@error判断的,不过不知道这个错误等级是多少。可能直接终止程序运行的。
      

  5.   

    1、  txlicenhe(不做技术高手)  CrazyFor(蚂蚁) 你们的方法有希望能解决问题
    if exists (select * from master.dbo.sysservers where srvname = 'Test')
    EXEC sp_dropserver  'Test'  EXEC sp_addlinkedserver 
       'Test', --名称
       '', 
       'SQLOLEDB',
       NULL,
       NULL,
       'DRIVER={SQL Server};SERVER=peter;UID=sa;PWD=;'select * from Test.Northwind.dbo.Categories
    会报错:
    服务器: 消息 18456,级别 14,状态 1,行 1
    用户 'sa' 登录失败。
    [OLE/DB provider returned message: Invalid connection string attribute]2、 tj_dns(愉快的登山者) 
    sysprocesses中不存在的hostname不能说明它不能使用。3、 liuyun2003(流云——小小菜鸟)
    是我的意思。但就算实际连一次,@@error也是没有机会在系统自己报错之前取到值的。
      

  6.   

    --
    使用联结服务器:
    EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
    --加上登陆
    exec sp_addlinkedsrvlogin  @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
    GO
    然后你就可以如下:
    if exists(select * from 别名.库名.dbo.表名)
      

  7.   

    if exists(select * from 别名.库名..sysobjects where name='表名' and xtype='u')
       print '存在'
    else
       print '不存在'
      

  8.   

    1、 sdhdy(大江东去...) 
    如果压根连不上,是不能正确读取sysobjects数据的。2、另外一个问题是
    LocalServer=A,LocalUser=myuser,
    RemoteServer=B,RemoteUser=sa,联结服务器,登陆后:
    LocalServer以SA身份可以正常读取(select)RemoteServer数据的,而myuser却不能。但只要SA读取(select)过一次,myuser就正常了。
    我的登录这样写的:
    exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false'
    GO