You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Agent Job恢复脚本报错:sp_verify_category_identifiers参数缺失

解决SQL Agent作业恢复时sp_verify_category_identifiers参数报错问题

核心问题分析

sp_verify_category_identifiers是MSDB库中的系统存储过程,用于验证作业分类的合法性,报错提示缺少@category_name通常是以下两种原因:

  1. 参数传递顺序错误,未按存储过程定义的顺序或显式指定参数名
  2. 当作业分类类型不为"无分类"时,未提供有效的分类名称

存储过程参数说明

该存储过程的4个参数定义及作用如下:

  • @job_id UNIQUEIDENTIFIER:要验证的作业唯一ID
  • @category_type INT:作业分类类型,取值为:
    • 1:本地作业分类(LOCAL_JOB_CATEGORY)
    • 2:多服务器作业分类(MULTI_SERVER_JOB_CATEGORY)
    • 3:无分类(NONE)
  • @category_name SYSNAME = NULL:作业分类名称,当@category_type为1或2时必须提供有效值
  • @category_id INT = NULL OUTPUT:输出参数,返回验证通过的分类ID

正确调用示例

结合你的JobAgentRestore备份表,恢复时按以下方式调用:

DECLARE @target_job_id UNIQUEIDENTIFIER
DECLARE @target_category_type INT
DECLARE @target_category_name SYSNAME
DECLARE @validated_category_id INT

-- 从备份表读取目标作业的分类信息
SELECT 
    @target_job_id = job_id,
    @target_category_type = category_type,
    @target_category_name = category_name
FROM JobAgentRestore
WHERE job_name = '需要恢复的作业名称' -- 替换为实际作业名

-- 显式指定参数名调用存储过程,避免顺序错误
EXEC msdb.dbo.sp_verify_category_identifiers
    @job_id = @target_job_id,
    @category_type = @target_category_type,
    @category_name = @target_category_name,
    @category_id = @validated_category_id OUTPUT

-- 后续可使用@validated_category_id关联作业分类完成恢复

关键注意事项

  1. 备份时确保分类信息完整:如果你的备份表未正确存储分类类型和名称,恢复时必然报错。修正备份脚本,确保从系统表获取完整分类数据:
-- 修正后的备份插入语句
INSERT INTO JobAgentRestore (job_id, job_name, category_type, category_name, ...其他字段...)
SELECT
    j.job_id,
    j.name AS job_name,
    ISNULL(c.category_type, 3) AS category_type, -- 无分类时默认设为3
    ISNULL(c.name, '') AS category_name,
    -- 其他需要备份的作业字段(如描述、所有者等)
FROM msdb.dbo.sysjobs j
LEFT JOIN msdb.dbo.syscategories c ON j.category_id = c.category_id
  1. 无分类作业的处理:如果作业没有分类,@category_type设为3,此时@category_name可传NULL或空字符串,存储过程不会报错。

  2. 避免位置参数调用:不要仅按位置传递参数,显式指定参数名可以避免因参数顺序混淆导致的错误。

内容的提问来源于stack exchange,提问作者randia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 01:36:09