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

在用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 @[email protected], @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 [email protected]
    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 @[email protected], @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:

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

时间: 2024-10-11 21:54:41

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

关于spring4和hibernate4整合,配置事务报“Cannot unwrap to requested type [javax.sql.DataSource]”错误的解决方法及心得

Cannot unwrap to requested type [javax.sql.DataSource] 配置hibernate4和spring4时,出现错误,解决方法: 1.我去了spring4中的事务配置,数据库可以正常执行并访问.如下: <!-- 配置Hibernate  数据事务 --> <bean id="transactionManager" class="org.springframework.orm.hibernate4.Hibernat

SENCHA用cmd创建app时错误的解决方法

SENCHA用cmd创建app时发生错误 提示 unable to locate support framework 之类的问题 可以输入 sencha -sdk 你sdk的目录 generate app APPNAME 你要放app的目录

SQL SERVER出现大量一致性错误的解决方法

如果DBCC CHECKDB发现了比较少的一致性错误,可以使用   DBCC UPDATEUSAGE(DatabaseName,"dbo.ObjectName"); 语句逐个针对表或索引中的每个分区更正行.已用页.保留页.叶级页和数据页的计数.但是如果数据库出现大量一致性错误.例如如下所示: DBCC results for 'JO_T_CUTXX'. 消息 2508,级别 16,状态 1,第 1 行 The In-row data USED page count for object

ORA-06502: PL/SQL: numeric or value error: character to number conversion error 错误的解决方法

故障描述:中间层调用存储过程报错,到PL/SQL中对存储过程进行调试报以下错误 ORA-06502: PL/SQL: numeric or value error: character to number conversion errorORA-06512: at "PROCESS_DRUG_SAME_AS_INFO", line 24ORA-06512: at line 1 错误原因: 找到存储过程PROCESS_DRUG_SAME_AS_INFO,并将代码定位在24行,发现代码中两

SQL点滴7—使用SQL Server的attach功能出现错误及解决方法

原文:SQL点滴7-使用SQL Server的attach功能出现错误及解决方法 今天用SQL Server 2008的attach功能附加一个数据库,出了点问题,提示的错误是: Unable to open physical file "D:\Documents\Dalt\XXXX.mdf" Operating system error 5: "5(error not found)" (Microsoft SQL Server: Error 5120)"

飞鸽传书 bind() error=10048错误的解决方法

提示  bind() 错误=10048 原因:其他程序占用飞鸽的 2425 端口 比如:飞秋也是使用2425端口 解决:用netstat命令查看是哪个进程占用了该端口 格式:netstat -ano | find "2425" 结果:  UDP    0.0.0.0:2425     *:*        1716 最后的1716就是占用2425进程的进程ID,看看是什么,可以结束的直接结束该进程,再打开飞鸽就可以了. 关于netstat命令可以输入命令 netstat /? 查看更多

vc++ 编译连接错误and解决方法

1. LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol [email protected] Debug/lizi.exe : [分析]: 项目创建错误,因该选择Win32 Console Project,而不是 Win32 Projectvc++ 编译连接错误and解决方法,布布扣,bubuko.com

关于启动Visual Studio 2010 旗舰版的几个错误的解决方法。

关于启动Visual Studio 2010 旗舰版的几个错误的解决方法.亲测. 重做系统之后,今天是第一次打开Visual Studio 2010 旗舰版码代码,结果遇到几个弹出的对话框,现在与大家分享下错误和解决方法. 人品不好,首先遇到这个错误. Q1:未能正确加载“VSTS for Database Professionals Sql Server Data-tier Application" 包. A1:打开cmd,输入regsvr32 %windir%\system32\jscrip

Django Ubuntu:Database returned an invalid value in QuerySet.dates(). 错误的解决方法

运行Windows下创建的Django项目时,发生此错误! Database returned an invalid value in QuerySet.dates(). Are time zone definitions and pytz installed? 按提示先安装pytz 1.先安装easy_install: sudo apt-get install python-setuptools 2.进入官网,获取下载地址,使用wget命令下载: wget https://pypi.pytho