Query1.Close;
  Query1.SQL.Clear;
  sqlstr1:='exec sp_Addlinkedserver ''yc'',''SQLOLEDB'',''192.168.0.101''';
  Query1.SQL.Text:=SqlStr1;
  Query1.ExecSQL;
  Query1.Close;
  Query1.SQL.Clear;
  SqlStr2:='exec sp_addlinkedsrvlogin ''yc'',''false'',null,''sa'',''1111''';
  Query1.SQL.Add(sqlstr2);
  Query1.ExecSQL;
  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add('select * into yc.RMake.dbo.PRODUCETYPE from RMake.dbo.PRODUCETYPE where 1=2');//这句 话该如何写?错误是前缀最大为2
  Query2.Open;我想把本地的表结构复制到另一台电脑上

解决方案 »

  1.   

    Query2.SQL.Add('select * into yc.RMake.dbo.PRODUCETYPE from RMake.dbo.PRODUCETYPE where 1=2');这句SQL执行之后不会有数据结果的,因为1不等于2
      

  2.   

    where 1=2  是不是写错了??
      

  3.   

    select * into TempPRODUCETYPE from PRODUCETYPE where 1=2(在库中建TempPRODUCETYPE表,结构与PRODUCETYPE相同)可以执行成功的
    换成yc.RMake.dbo.PRODUCETYPE后提示前缀最大只能为2,不知道还有没有使用delphi代码复制表结构的方法
      

  4.   

    select * into TempPRODUCETYPE from PRODUCETYPE where 1=2(在库中建TempPRODUCETYPE表,结构与PRODUCETYPE相同)可以执行成功的
    换成yc.RMake.dbo.PRODUCETYPE后提示前缀最大只能为2,不知道还有没有使用delphi代码复制表结构的方法
      

  5.   

    [yc.RMake].dbo.PRODUCETYPE 试一下
      

  6.   

    临时打开远程数据库用  OPENDATASOURCE()即可
      

  7.   

    查询其他服务器用
    select   *   from   opendatasource('SQLOLEDB','server=ip地址;uid=sa;pwd=密码').数据库.dbo.表
      

  8.   

    select * into OPENDATASOURCE('SQLOLEDB','Data Source=192.168.0.101;User ID=Sa;Password=1111').RMake.dbo.PRODUCETYPE from RMake.dbo.PRODUCETYPE where 1=2
    大侠帮忙看看,这样写对不对
    执行时说在OPENDATASOURCE附近有错误
      

  9.   

    用双引号
    "Data Source=192.168.0.101;User ID=Sa;Password=1111"
      

  10.   

    反过来 登录到192.168.0.101数据库
    然后select * into  dbo.PRODUCETYPE from OPENDATASOURCE('SQLOLEDB','Data Source='自己ip'Source=192.168.0.101;User ID=Sa;Password=1111').RMake.dbo.PRODUCETYPE
      

  11.   

    反过来 登录到192.168.0.101数据库 
    然后
    select * into  dbo.PRODUCETYPE from OPENDATASOURCE('SQLOLEDB','Data Source=自己ip;User ID=Sa;Password=1111').RMake.dbo.PRODUCETYPE WHERE 1<>2
      

  12.   

    使用  beifangke  大哥的办法就搞定了,晚上结贴
    现在还是有点不懂
    OPENDATASOURCE('SQLOLEDB','Data Source=自己ip;User ID=Sa;Password=1111').RMake.dbo.PRODUCETYPE 与 dbo.PRODUCETYPE 同样都是表  为什么
    select * into OPENDATASOURCE('SQLOLEDB','Data Source=192.168.0.101;User ID=Sa;Password=1111').RMake.dbo.PRODUCETYPE from RMake.dbo.PRODUCETYPE会出错
      

  13.   


    select * into OPENDATASOURCE('SQLOLEDB','Data Source=192.168.0.101;User ID=Sa;Password=1111').RMake.dbo.PRODUCETYPE from RMake.dbo.PRODUCETYPE会出错 
    不能向远程服务器中新建表
      

  14.   

    可能是sql的限制,规定into后面的对象前缀不能太多吧