update a set xse=b.sjxsh,mle=b.sjml 
from OPENROWSET('SQLOLEDB','220.220.221.162';'sa';'sasasa','SELECT * FROM bxyf.dbo.jjzs') a, #t_cb1 b 
where a.yyyymm=(select convert( char(10),getdate(),120)) and a.bm=b.departmentno消息 208,级别 16,状态 1,第 1 行
对象名 'a' 无效。但是如果是select就能正常执行!select * from OPENROWSET('SQLOLEDB','220.220.221.162';'sa';'sasasa','SELECT * FROM bxyf.dbo.jjzs')a, #t_cb1 b 
where a.yyyymm=(select convert( char(10),getdate(),120)) and a.bm=b.departmentno这个正常出结果!求解答!!

解决方案 »

  1.   

    OPENROWSET函数只能读取远程数据。
      

  2.   

    --这样试试
    update a set xse=b.sjxsh,mle=b.sjml  
    from 
    (select * from 
    OPENROWSET('SQLOLEDB','220.220.221.162';'sa';'sasasa','SELECT * FROM bxyf.dbo.jjzs') ta) a, #t_cb1 b  
    where a.yyyymm=(select convert( char(10),getdate(),120)) and a.bm=b.departmentno
      

  3.   

    如果2楼说的只能读的话!
    insert into OPENROWSET('SQLOLEDB','220.220.221.162';'sa';'sasasa','SELECT * FROM bxyf.dbo.jjzs ')
    (bm,yyyymm,xrw,mrw,xse,mle,jjzs) 
    select DepartmentNo,(select convert( char(10),getdate(),120)) as yyyymm,[7xshe],[7mle],
    0 as xse,0 as mle,0 as jjzs
    from cb0727 a,mis_department b
    where a.DepartmentName=b.DepartmentName
    那这句为什么又能成功呢?
      

  4.   

    要不把'SELECT * FROM bxyf.dbo.jjzs '
    改为'SELECT * into ls FROM bxyf.dbo.jjzs ',弄到本地再处理