1

以下成功运行:

EXEC sys.xp_readerrorlog 0

然而,这不会:

SELECT * 
FROM OPENROWSET(
    'SQLNCLI', 
    'Server=.;Trusted_Connection=Yes;',
    'EXEC sys.xp_readerrorlog 0')

我使用我的 Windows 帐户登录,并且我拥有sysadmin本地服务器上所有数据库的权限,包括系统数据库。

这是错误消息:

消息 7357,级别 16,状态 2,第 11 行
无法处理对象“EXEC sys.xp_readerrorlog 0”。链接服务器“(null)”的 OLE DB 提供程序“SQLNCLI10”指示该对象没有列或当前用户对该对象没有权限。

我检查了文件夹权限,C:\Windows\ServiceProfiles\LocalService\AppData以防万一OPENROWSET创建临时文件时出现问题,但本地管理员(我在组中)拥有完全控制权。

为什么我会收到此错误,我该如何解决?

4

1 回答 1

3

尝试这个:

SELECT * 
FROM OPENROWSET(
    'SQLNCLI', 
    'Server=.;Trusted_Connection=Yes;',
    'SET FMTONLY OFF;EXEC sys.xp_readerrorlog 0')

基本上,它试图在运行程序之前推断结果的形状。

使用该设置选项意味着唯一可行的方法是执行该过程。

于 2013-03-04T15:35:20.113 回答