我想创建一个SQL作业来停止并在工作时间之外重新启动报表服务器,但是我在创建允许这种情况发生的SQL代码时遇到了问题。
我正在考虑使用类似的东西: -
NET STOP ReportServer
NET START ReportServer
但是不知道将其合并到命令代码中的最佳方法吗?
任何建议都非常感谢。
答案 0 :(得分:2)
您无需编写任何SQL代码即可。 SQL代理作业还可以具有执行操作系统命令的“CmdExec”类型的作业步骤。
只需创建两个作业,一个用于停止一个用于启动报告服务服务。
向每个人添加一个类型为“CmdExec”的作业步骤,提供您在问题中列出的命令(net stop ...
和net start ...
)。
您可以通过SSMS UI或SQL命令创建作业。您可以使用UI中的“脚本”按钮创建后者。
为了便于说明,这里有一个摘录,显示了停止服务的作业步骤的创建:
...
USE [msdb]
GO
EXEC msdb.dbo.sp_add_jobstep @job_name=N'StopSSRS', @step_name=N'StopSSRS',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_fail_action=2,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'CmdExec',
@command=N'net.exe stop ReportService',
@database_name=N'master',
@flags=0
GO
...