我编写了一个脚本,该脚本从中读取作业计划msdb.dbo.sysschedules
并运行sp_update_schedule
以更改active_start_time
给定作业子集的时间。在每种情况下,sp_update_schedule
都会失败并显示消息“指定的@schedule_id('xxx') 不存在”。(消息 ID 14262,严重性 16)
schedule id
insysschedules
不是它要找的东西吗?我在这里想念什么?
我编写了一个脚本,该脚本从中读取作业计划msdb.dbo.sysschedules
并运行sp_update_schedule
以更改active_start_time
给定作业子集的时间。在每种情况下,sp_update_schedule
都会失败并显示消息“指定的@schedule_id('xxx') 不存在”。(消息 ID 14262,严重性 16)
schedule id
insysschedules
不是它要找的东西吗?我在这里想念什么?
@schedule_id
on 参数sp_update_schedule
确实指的是onschedule_id
列msdb.dbo.sysschedules
sp_update_schedule
包含sp_verify_schedule_identifiers
对验证计划的调用,并且正是在此验证步骤中,您收到了该错误(消息 14262)。如果您同时传递计划ID 和计划名称,则您传递的名称字符串可能存在问题,因为该字符串用于验证过程中的额外过滤。
我建议直接对调用进行一些测试,
sp_verify_schedule_identifiers
以便简化故障排除,并确保将有效参数传递给sp_update_schedule
:权限也可能妨碍您。您至少需要
GRANT EXEC ON sp_update_schedule TO <your login>
拨打您要拨打的电话。要执行我上面列出的故障排除步骤,您还需要被授予-- 尽管只有EXEC
在sp_verify_schedule_identifiers
直接执行它时才需要它。通常,所有权链接将允许您只需要顶级权限并且您将隐含地拥有执行该过程的权限。您还可以添加到SQLAgentUserRole
msdb 中的安全角色,其中还包括其他权限 - 如果您要重新安排工作,您可能还需要/想要一些其他权限来完成您的工作,假设这是可接受的访问级别。