现有一个作业,里面有10个步骤,现在我要在中间插入一个步骤。
在SQLSERVER2005上面生成的代码是先用sp_delete_jobstep删除该作业的每一个步骤,然后再用sp_add_jobstep往里面插入步骤。提问 1、sp_delete_jobstep和sp_add_jobstep可以在SQLSERVER2000上面使用么,再2000上使用的方法和2005里面一样么,下面贴两个2005的使用方法EXEC msdb.dbo.sp_delete_jobstep @job_id=N'79ebc4d2-2e66-4c78-842a-4bfb673c2c5e', @step_id=10
GO
EXEC msdb.dbo.sp_add_jobstep @job_id=N'79ebc4d2-2e66-4c78-842a-4bfb673c2c5e', @step_name=N'test', 
@step_id=10, 
@cmdexec_success_code=0, 
@on_success_action=3, 
@on_fail_action=2, 
@retry_attempts=0, 
@retry_interval=0, 
@os_run_priority=0, @subsystem=N'TSQL', 
@command=N'print ''test''', 
@database_name=N'master', 
@flags=0
GO提问 2、如果我要把新的步骤插入到第10的位置,即原来的第10步骤变成11步骤,可不可以只删除第10个步骤,然后再sp_add_jobstep新的第10和原来的第10两个步骤?

解决方案 »

  1.   

    提问一:可以
    提问二:直接用sp_update_jobsetp修改步骤10
      

  2.   

    这个直接在SSMS里面修改就可以了.
    不需要自己写代码的/
      

  3.   

    仅供参考:
    1、可以,从你列举的来看除了@os_run_priority在帮助中是“保留”外其余在2000中都有
    2、2000中好象是说只要你用sp_add_jobstep 插入
    作业步骤的序列标识号。步骤标识号从 1 开始,并以 1 为增量,中间无间隙。如果在现有序列中插入步骤,则序列号可以自动调整。如果没有指定 step_id,则提供一个值。step_id 的数据类型为 int,默认设置为 NULL。
    我的理解是不用删除再插入两个,系统会自动调整插入序列后的标识号.
      

  4.   

    回复1、3、5、6楼:
    自己做当然是在图形界面修改比较容易,不过要给用户的话,和其他功能一起都是要以SQL脚本的形式输出产品的。
      

  5.   

    me too,
    我这里也没有2000的环境