Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 721|回复: 0

创建SQL作业错误的解决方法(不能将值 NULL 插入列 'owner_sid',表 'msdb.dbo.sysjobs';列不允许有空值。)

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-7-20 06:51:38 | 显示全部楼层 |阅读模式

    在用SQL语句创建SQL Server作业时有时出现如下错误:

     

    1. 消息 515,级别 16,状态 2,过程 sp_add_job,第 137 行
    2. 不能将值 NULL 插入列 'owner_sid',表 'msdb.dbo.sysjobs';列不允许有空值。INSERT 失败。
    3. 语句已终止。

     这可能与为作业创建的数据库登录ID有关,这个登录ID需要是数据库的所有者(我的是sa),因此将

    1. @owner_login_name=N'HYSERITC003/wellcomm',
    2. 中的N'HYSERITC003/wellcomm'改为数据库的所有者,如sa就可以了。
      1. USE [msdb]
      2. GO
      3. /****** 对象:  Job [24日SOX催办]    脚本日期: 11/25/2008 09:40:05 ******/
      4. BEGIN TRANSACTION
      5. DECLARE @ReturnCode INT
      6. SELECT @ReturnCode = 0
      7. /****** 对象:  JobCategory [[Uncategorized (Local)]]]    脚本日期: 11/25/2008 09:40:06 ******/
      8. IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
      9. BEGIN
      10. EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
      11. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
      12. END
      13. DECLARE @jobId BINARY(16)
      14. EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'24日SOX催办', 
      15.         @enabled=1, 
      16.         @notify_level_eventlog=0, 
      17.         @notify_level_email=0, 
      18.         @notify_level_netsend=0, 
      19.         @notify_level_page=0, 
      20.         @delete_level=0, 
      21.         @description=N'24日控制点负责人没填报控制点信息,短信催办。', 
      22.         @category_name=N'[Uncategorized (Local)]', 
      23.         @owner_login_name=N'HYSERITC003/wellcomm',   --'HYSERITC003/wellcomm'改为‘sa’。
      24.         @job_id = @jobId OUTPUT
      25. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
      26. /****** 对象:  Step [24日催办]    脚本日期: 11/25/2008 09:40:07 ******/
      27. EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'24日催办', 
      28.         @step_id=1, 
      29.         @cmdexec_success_code=0, 
      30.         @on_success_action=1, 
      31.         @on_success_step_id=0, 
      32.         @on_fail_action=2, 
      33.         @on_fail_step_id=0, 
      34.         @retry_attempts=0, 
      35.         @retry_interval=0, 
      36.         @os_run_priority=0, @subsystem=N'TSQL', 
      37.         @command=N'-------【SOX】24号早上执行,短信催办控制点填报--------
      38. declare @Principal varchar(50)
      39. if exists (select distinct Principal from T_SOX where AuditingStatus<1 and Convert(varchar(7),writetime,120)=Convert(varchar(7),getdate(),120))
      40.  declare cur_principal cursor for select distinct Principal from T_SOX where AuditingStatus<1 and Convert(varchar(7),writetime,120)=Convert(varchar(7),getdate(),120)
      41.  open cur_principal
      42.  fetch next from cur_principal into @Principal
      43.  while (@@FETCH_STATUS =0)
      44.  begin
      45.     declare @uid varchar(50)
      46.     select @uid=USER_ID From T_USER Where FULL_NAME=@Principal
      47.     insert into t_sms_interface(wf_id,wfi_id,form_id,serial_no,receive_user_id,sms_content,create_time)
      48.     values(''0'',''1'',''SOX控制点填报'',''1'',@uid,''今天是24号了,请到业务管理系统填写SOX控制点信息。谢谢。'',getdate())
      49.  fetch next from cur_principal into @Principal
      50.  end
      51.  close cur_principal
      52.  deallocate cur_principal
      53. ----------------------------------------------', 
      54.         @database_name=N'hyBizAs', 
      55.         @flags=0
      56. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
      57. EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
      58. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
      59. EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'24日早上8点执行', 
      60.         @enabled=1, 
      61.         @freq_type=16, 
      62.         @freq_interval=24, 
      63.         @freq_subday_type=1, 
      64.         @freq_subday_interval=0, 
      65.         @freq_relative_interval=0, 
      66.         @freq_recurrence_factor=1, 
      67.         @active_start_date=20080728, 
      68.         @active_end_date=99991231, 
      69.         @active_start_time=80000, 
      70.         @active_end_time=235959
      71. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
      72. EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
      73. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
      74. COMMIT TRANSACTION
      75. GOTO EndSave
      76. QuitWithRollback:
      77.     IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
      78. EndSave:
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-12-22 22:29 , Processed in 0.057601 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表