现在有两个服务器都是Sqlserver 2000。
名称是:ServerA和ServerB,其中都有个名称为Test的数据库
都是使用Windows认证的方式进行连接。
使用C#的SqlConnection对象连接到数据库ServerA的Test,要根据ServerA的Test来更新ServerB中Test中的表Test  数据库中有表:  T_User
结构:
    U_ID
    U_Name
    U_Sex
我的连接字符串:
Password=;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=TEST;Data Source=ServerA;我的SQL语句:INSERT INTO OPENDATASOURCE('SQLOLEDB.1','Password=;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=TEST;Data Source=ServerB;').Test.dbo.T_User
FROM T_User出错。提示就是OLEDB驱动错误,没有其他信息。有时侯还会导致服务器运行缓慢,发生TIME OUT 情况。我使用这样如此简单的SELECT语句都不行:
SELECT * FROM OPENDATASOURCE('SQLOLEDB.1','Password=;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=TEST;Data Source=ServerB;').Test.dbo.T_User
在ServerA中执行相同的SQL语句就没有问题。十分奇怪,我尝试着把连接字符串中的Integrated Security,Persist Security Info,Initial Catalog删除,都无法解决。

解决方案 »

  1.   

    建议你用SQLSERVER的链接服务器来处理连接问题,可以在ServerA上建立ServerB的链接,假设你将链接名取为B,
    此时你查询表只需要用 
    select * B.dbo.T_User,更新SQL类似
      

  2.   

    在同一个SQL SERVER管理工具下操作两个数据库,应该就没问题了,你能连接上就可以操作了
      

  3.   

     
     
    1. 配置windows的ODBC数据源: 
    开始菜单—》程式集—》系统管理工具—》资料数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:添加—》选择CENTURE SQLBASE 3.01 32-BIT DRIVERS-NT &WIN95—》进入ODBC  SQLBASE  DRIVER  SETUP画面:自定义数据源名称(随意如: SQLBASETEST)—》数据库名称(必选!)—》SERVER NAME: 输入SQLBASE DATABASE的SERVER名称DEFAULT USER NAME : 输入SQLBASE DATABASE的用户其他选择默认值,选择OK(确认)即可! 配置和测试ODBC完成!
    2. 配置sqlserver2000中的连接服务器: 
    企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称; 选其他数据源; 指定程序名称为:MICROSOFT OLE DB PROVIDER FOR ODBC DRIVERS; 产品名称可不填; 数据源指定刚才ODBC中定义好的数据源名称; 提供程序字符串按以下格式填写:User ID=username;Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连接的SQLBASE数据库中的用户名和密码 —》 安全性标签页里:设置用此安全上下文进行,并录入SQLBASE的数据库用户名和密码—》服务器选项标签页可默认—》确定。 
    4. 准备工作全部完成!在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,即可在右边窗口看到该SQLBASE数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!访问表时,使用格式为: [连接服务器名]..[SQLBASE用户].[表名]。更详细具体的使用这里不再赘述。
      

  4.   

    <add key="guba" value="server=(local);initial catalog=数据库名;persist security info=False;user id=sa;password=zhx;workstation id=server;packet size=4096"/>
    <add key="guba_hz" value="server=(192.168.1.12);initial catalog=数据库名;persist security info=False;user id=sa;password=zhx;workstation id=server;packet size=4096"/>