有人可以解释并解决以下问题。谢谢。
我在Windows Server 2012上的SQL Server 2012中运行时遇到此查询问题 查询(@query)在单独运行时运行良好,但在放入SQL Server代理作业时没有显示结果(见下文)。
@query = N'SELECT p.name AS [Name] FROM sys.server_principals r
INNER JOIN sys.server_role_members m ON r.principal_id = m.role_principal_id
INNER JOIN sys.server_principals p ON p.principal_id = m.member_principal_id
WHERE r.name = "sysadmin";'
毫无疑问,当我在Windows Server 2008上运行的Sql Server 2012中进行测试时,它既可以完全独立运行,也可以在SQL Server Agent Job中运行!!
答案 0 :(得分:0)
我找到了原因和解决方案。
它取决于授予运行SQL Server代理的帐户/用户的权限。此帐户必须至少具有securityadmin服务器角色才能访问数据库邮件配置文件,否则它将返回错误或根本不发送邮件。 要授予其必要的服务器角色,请转到安全性>登录以将该帐户添加为新登录,然后向其授予securityadmin服务器角色。
希望这可以帮助任何可能遇到与我相同问题的人。