以下成功运行:
EXEC sys.xp_readerrorlog 0
然而,这不是:
SELECT *
FROM OPENROWSET(
'SQLNCLI',
'Server=.;Trusted_Connection=Yes;',
'EXEC sys.xp_readerrorlog 0')
我使用我的Windows帐户登录,并且对本地服务器上的所有数据库(包括系统数据库)拥有sysadmin
权限。
以下是错误消息:
Msg 7357,Level 16,State 2,Line 11
无法处理对象“EXEC sys.xp_readerrorlog 0”。 OLE DB提供程序“SQLNCLI10”用于链接 server“(null)”表示该对象没有列或者没有 当前用户没有该对象的权限。
我已经检查了 C:\Windows\ServiceProfiles\LocalService\AppData
上的文件夹权限,以防OPENROWSET
创建临时文件但本地管理员(我在小组)完全控制。
为什么我会收到此错误以及如何解决此问题?
答案 0 :(得分:3)
试试这个:
SELECT *
FROM OPENROWSET(
'SQLNCLI',
'Server=.;Trusted_Connection=Yes;',
'SET FMTONLY OFF;EXEC sys.xp_readerrorlog 0')
基本上,它试图在运行程序之前推断结果的形状。
使用该set选项意味着可行的唯一方法是执行该过程。