我正在开发一个项目,为失败的作业创建各种日志表。由于step_id可以根据步骤顺序而改变,因此我想使用step_uid作为步骤的唯一标识符。考虑到这一点,似乎msdb的sysjobsteps表中的step_uid是一个可以为空的列,并且我依赖于那个列尚未为null。
是否有人知道该列为什么或何时为空。我当前的服务器上没有示例。
答案 0 :(得分:1)
通过查看sp_add_jobstep_internal
存储过程的源代码,我们可以发现step_uid
将始终通过此过程填充。
此外,sp_write_sysjobstep_log
存储过程假定step_uid
不能为空(它将其值复制到sysjobstepslogs
表中,其中step_uid
被定义为NOT NULL)。
我认为step_uid
列仅被定义为可空,因为它在SQL Server 2000中不存在。但是,自SQL Server 2005以来,它似乎总是被填充。