您的位置:首页 > 理论基础

计算机名称更改以后,无法添加、更新或删除从msx服务器上发起的作业(或其步骤或调度) 解决方法

2010-05-31 14:45 846 查看
最近发现一个SQL 代理的一个作业无法自动运行,察看作业历史记录发现

”作业失败。 无法确定所有者(TPCN\Administrator,拥有作业 wuhj)是否有访问服务器的权限(原因: 未能获得有关 Windows NT 组/用户 'TPCN\Administrator' 的信息。 [SQLSTATE 42000](错误 8198)).“

于是就去SQL 代理中更改作业的所有者,但是发现一个奇怪问题

“计算机名称更改以后,无法添加、更新或删除从msx服务器上发起的作业(或其步骤或调度)”

网上一般的方法是

use msdb

SP_CONFIGURE 'ALLOW UpdateS',1 RECONFIGURE WITH OVERRIDE

GO

update sysjobs set originating_server=@@servername

go

SP_CONFIGURE 'ALLOW UpdateS',0 RECONFIGURE WITH OVERRIDE

GO

但是不好用,查询了一下@@servername 还是原来的机器名,与现有的机器名不一样

经查询SERVERPROPERTY 函数的 ServerName 属性与 @@SERVERNAME 返回相似的信息。ServerName 属性提供 Windows 服务器和实例名称,两者共同构成唯一的服务器实例。@@SERVERNAME 提供当前配置的本地服务器名称。

这样就很清楚了,用如下的方法可以更改

sp_configure 'allow updates',1 reconfigure with override

go

update sysjobs set originating_server = convert(varchar(50),serverproperty('servername'))

go

sp_configure 'allow updates',0 reconfigure with override

go

这样后,任务的所有者可以更改了,本实例的数据库是SQL 2000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐