SELECT * from openrowset
('sqloledb','SERVER=SERVER1;UID=ZZZ;PWD=12345;database=yourdb','SET FMTONLY OFF;set nocount on;exec 存储过程') as a

解决方案 »

  1.   

    写法没问题,只是写少了别名SELECT * from openrowset
    ('sqloledb','SERVER=SERVER1';'UID=ZZZ';'PWD=12345','exec 存储过程') as a问题在于,你运行的机器和SERVER1是否连通,SERVER1是否写错了
      

  2.   

    pbsql(风云)你好,你的写法运行通过,但运行好慢啊,有没快点的写法?,其实这里的SERVER就是本地服务器,你看能不能再改进一下呢?
    SELECT * from openrowset
    ('sqloledb','SERVER=SERVER1;UID=ZZZ;PWD=12345;database=yourdb','SET FMTONLY OFF;set nocount on;exec 存储过程') as a
      

  3.   

    SELECT * from openrowset('sqloledb','UID=ZZZ;PWD=12345;database=yourdb','SET FMTONLY OFF;set nocount on;exec 存储过程') as a
      

  4.   

    SELECT * from openrowset('sqloledb','UID=ZZZ;PWD=12345;database=yourdb','SET FMTONLY OFF;set nocount on;exec 存储过程') as a
    ===========
    这样写还是好慢,原来的存储过程运行只要几秒,这个语句要运行一分多钟,痛苦啊
      

  5.   

    既然在本地,直接
    exec 存储过程
      

  6.   

    既然在本地,直接
    exec 存储过程
    ==========
    是这样的,那个存储过程我只有只读的权限,但是读出的数据还要经过以后很多的过滤,所以想是把这个存储过程里读出的记录写进一个临时表,然后再对临时表操作,
    前面的临时表语句我在这里省略了,没写
      

  7.   

    --不会是你的oledb有点问题吧,试试下面这个:select * from
    OpenRowset('MSDASQL'
    ,'Driver={SQL Server};server=;UID=ZZZ;PWD=12345;database=yourdb','SET FMTONLY OFF;set nocount on;exec 存储过程') as a