select * from 
openrowset('SQLOLEDB' 
           , 'server';'SA';'pwd'
           ,' SET NOCOUNT ON
              SET FMTONLY ON 
              exec lsdata..dsWipCKMatUse ''2005/08/01'' , ''2005/08/30'' , 50
            '
           )

解决方案 »

  1.   

    select * from 
    openrowset('SQLOLEDB' 
               , 'server';'SA';'pwd'
               ,' SET NOCOUNT ON
                  exec lsdata..dsWipCKMatUse ''2005/08/01'' , ''2005/08/30'' , 50
                '
               )
      

  2.   

    去掉SET FMTONLY ON 就可以了
      

  3.   

    要不,你采用opendatabase的方法来使用吧!
    SELECT   *
    FROM      OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=192.168.0.2;User ID=sa;Password=XXXXXXX'
             ).fx.dbo.usertable where 你的条件这是我要访问服务器为192.168.0.2的fx库的usertable表的内容
      

  4.   

    楼上,但是我是需要执行存储过程的呀,使用OPENDATASOURCE不行吧
      

  5.   

    对于访问次数稍多的数据源,建议使用链接服务器 。OPENROWSET与OPENDATASOURCE 应该只引用那些不经常访问的 OLE DB 数据源,都不能提供链接的服务器定义的全部功能,例如,安全管理以及查询目录信息的能力
      

  6.   

    我测出来了,我发现存储过程内最后返回结果集的SELECT 语句是从#临时表就是出错
    Could not process object 'set NOCOUNT ON SET ANSI_NULLS ON exec lsdata..TestProc  SET NOCOUNT OFF'. The OLE DB provider 'SQLOLEDB' indicates that the object has no columns.
    把#临时表改为正常表的话就没问题,这是怎么回事,难道还有这样的限制???
    楼上的也可以测一下--執行不成功
    crate proc proc1
    as
    select * into #temp from sysobjects
    select * from #temp
    go--成功執行
    crate proc proc1
    as
    select * from sysobjectsgo
      

  7.   

    恩!vivianfdlpw() ,原来是这样!又学到东西了,谢谢!:)
      

  8.   

    --创建存储过程
    create proc proc1
    as
    select * into #temp from sysobjects
    select * from #temp
    go--测试
    select * from 
    openrowset('SQLOLEDB' 
               , 'FUDAN-OXI9Y1PYT';'SA';'123456'
               ,' SET NOCOUNT ON
                  SET FMTONLY Off 
                  exec test..proc1
                '
               )