不能,不过可以把存储过程改成子定义函数,就可以select了。

解决方案 »

  1.   

    一般不可以!如果你要的话:
    SELECT a.*
    FROM OPENROWSET('SQLOLEDB','服务名';'用户';'密码',
       'exec 库名.dbo.过程名 ') AS a
      

  2.   

    有必要这样做吗?即使这样做,与
    exec 库名.dbo.过程名 
    有什么区别?
    奇怪?
      

  3.   

    如果你不是同一个服务实例的话:
    先:
    使用联结服务器:
    EXEC sp_addlinkedserver 
       '别名', 
       '', 
       'MSDASQL',
       NULL,
       NULL,
       'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
    GO再:Select *  From OpenQuery(别名,'Exec 库名.dbo.过程名')
      

  4.   

    强烈建议将过程改为函数:
    create function 名 (@参数 int)
    returns table
    as
    return (select * from 表 where 列=@参数)---------
    调用:
    select * from 名(1)