0

我想创建一个 SQL 作业来在工作时间之外停止和重新启动报表服务器,但是我在创建允许这种情况发生的 SQL 代码时遇到了麻烦。

我正在考虑使用类似的东西:-

NET STOP 报告服务器

NET START 报表服务器

但不知道将其合并到命令代码中的最佳方法?

非常感谢任何建议。

4

1 回答 1

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
...
于 2013-07-31T10:51:45.253 回答