SQL SERVER Msg 7357错误解决

使用下列查询时,出现错误:
select a.* from OPENROWSET('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;','exec [SUSDB]..[spGetSummariesPerUpdate]') as a

Msg 7357, Level 16, State 2, Line 1
无法处理对象"exec [SUSDB]..[spGetSummariesPerUpdate]"。连结服务器"(null)" 的OLE DB 提供者"SQLNCLI" 指出对象没有数据行,或是目前的用户没有

使用该对象的权限。

找到微软SQL2000上关于OpenQuery查询时的提示
http://support.microsoft.com/kb/297368
T-SQL function OpenQuery fails to execute on linked servers

OpenQuery needs metadata about the columns at compile time. To retrieve the metadata, OpenQuery makes OLE DB calls which eventually

execute the query with the SET FMTONLY ON option. As a result, OpenQuery fails to execute. Because of this behavior, queries that do

not return metadata about columns, such as SQL Server stored procedures, cannot be run by using OpenQuery.


解决方法,在语句中加SET FMTONLY OFF开关即可:
select a.* from OPENROWSET('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;','SET FMTONLY OFF exec [SUSDB]..

[spGetSummariesPerUpdate]') as a


下列是有关SET FMTONLY的解释:
SET FMTONLY  只将元数据返回给客户端。

语法:SET FMTONLY { ON | OFF }

注释:
当 SET FMTONLY 为 ON 时,将不对行进行处理,也不将行作为请求的结果发送到客户端。

SET FMTONLY 的设置是在执行或运行时设置,而不是在分析时设置。

权限:
SET FMTONLY 权限默认授予所有用户。

示例
下例将 SET FMTONLY 的设置更改为 ON 并执行 SELECT 语句。该设置使该语句只返回列信息,而不返回数据行。

SET FMTONLY ON
GO
USE pubs
GO
SELECT *
FROM pubs.dbo.authors
GO

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9932141/viewspace-625224/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9932141/viewspace-625224/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值