|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
支持多线程,充分利用CPU资源成绩缘故原由:
由于本人地点的项目必要一个服务来撑持运转,但在完成服务代码后发明该服务在一些电脑上其实不能主动运转,找了良多天的bug,也未找出成绩地点。终极想到一个折衷的办法,就是在SQLSERVER中增加一个功课,然后在该功课中启动服务,并设置该功课为SQLSERVER服务启动时运转。如许就能够办理服务不克不及主动启动的成绩了。
在该功课顶用到六个体系存储历程:
1,sp_add_job--增加由SQLServerAgent服务实行的新功课。
2,sp_add_jobstep--在功课中增加一个步骤(操纵)。
3,sp_update_job--变动功课的属性。
4,sp_add_jobschedule--创立功课企图。
5,sp_add_jobserver--在指定的服务器中,以指定的功课为方针。
6,sp_add_category--将指定的功课、警报或操纵员种别增加到服务器中。
以上体系存储历程详细用法请参看MSDN匡助文档。
示例代码:
/******工具:Job[启动Custom_SERVER服务]剧本日期:09/14/201111:13:01******/
BEGINTRANSACTION
DECLARE@ReturnCodeINT
SELECT@ReturnCode=0
/******工具:JobCategory[[Uncategorized(Local)]]]剧本日期:09/14/201111:13:01******/
IFNOTEXISTS(SELECTnameFROMmsdb.dbo.syscategoriesWHEREname=N[Uncategorized(Local)]ANDcategory_class=1)
BEGIN
EXEC@ReturnCode=msdb.dbo.sp_add_category@class=NJOB,@type=NLOCAL,@name=N[Uncategorized(Local)]
IF(@@ERROR0OR@ReturnCode0)GOTOQuitWithRollback
END
DECLARE@jobIdBINARY(16)
EXEC@ReturnCode=msdb.dbo.sp_add_job@job_name=N启动Custom_SERVER服务,
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N无形貌。,
@category_name=N[Uncategorized(Local)],
@owner_login_name=NSERVERAdministrator,@job_id=@jobIdOUTPUT
IF(@@ERROR0OR@ReturnCode0)GOTOQuitWithRollback
/******工具:Step[启动Custom_SERVER服务]剧本日期:09/14/201111:13:02******/
EXEC@ReturnCode=msdb.dbo.sp_add_jobstep@job_id=@jobId,@step_name=N启动Custom_SERVER服务,
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=5,
@retry_interval=1,
@os_run_priority=0,@subsystem=NTSQL,
@command=Nexecmaster..xp_cmdshellnetstartCustom_SERVER,
@database_name=Nmaster,
@flags=0
IF(@@ERROR0OR@ReturnCode0)GOTOQuitWithRollback
EXEC@ReturnCode=msdb.dbo.sp_update_job@job_id=@jobId,@start_step_id=1
IF(@@ERROR0OR@ReturnCode0)GOTOQuitWithRollback
EXEC@ReturnCode=msdb.dbo.sp_add_jobschedule@job_id=@jobId,@name=N启动Custom_SERVER服务,
@enabled=1,
@freq_type=64,
@freq_interval=0,
@freq_subday_type=0,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20110511,
@active_end_date=99991231,
@active_start_time=0,
@active_end_time=235959
IF(@@ERROR0OR@ReturnCode0)GOTOQuitWithRollback
EXEC@ReturnCode=msdb.dbo.sp_add_jobserver@job_id=@jobId,@server_name=N(local)
IF(@@ERROR0OR@ReturnCode0)GOTOQuitWithRollback
COMMITTRANSACTION
GOTOEndSave
QuitWithRollback:
IF(@@TRANCOUNT>0)ROLLBACKTRANSACTION
EndSave:
提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。 |
|