Pus*_*kar 8 sql-server powershell sql-server-2014
我们可以通过 T-SQL 脚本或 PowerShell/cmd 启用/禁用 SQL 服务器代理服务吗?
小智 7
这将取决于您正在运行的 PowerShell 版本,但此命令至少可以在 3.0 及更高版本中使用:
Set-Service SQLSERVERAGENT -StartupType Disabled
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用 WMI,或者您可以使用 SQL Server WMI(microsoft.sqlserver.management.smo.wmi 命名空间)。
在 T-SQL 中,没有允许您与服务交互的本机机制。除了使用xp_cmdshell
和调用 PowerShell 或 cmd 命令。
在不忽视 @ Shawn Melton的答案中所述的任何内容的情况下,有一个特定的未记录的存储过程可以执行此操作。这是xp_servicecontrol
。通过它可以启动、停止和检查TSQL中SQL Server代理服务的服务状态。
如果要启动、停止或查看 SQL Server 代理服务的“正在运行/正在停止”状态,语法为:
EXEC xp_servicecontrol N'Querystate|Start|Stop',N'Service Name'
Run Code Online (Sandbox Code Playgroud)
如果要通过TSQL启动SQLServer代理服务,则语法如下:
启动 SQL Server 代理
EXEC xp_servicecontrol N'START',N'SQLServerAGENT';
GO
Run Code Online (Sandbox Code Playgroud)
停止 SQL Server 代理
EXEC xp_servicecontrol N'STOP',N'SQLServerAGENT';
GO
Run Code Online (Sandbox Code Playgroud)
如果要查看 SQL Server 代理服务的服务状态,则语法为:
EXEC xp_servicecontrol N'querystate',N'SQLServerAGENT';
Go
Run Code Online (Sandbox Code Playgroud)
启动 SQL Server Agent 服务后,您将收到如下消息
服务开始
消息 22003,级别 1,状态 0
停止 SQL Server 代理服务后,您将收到如下消息
服务已停止
消息 22003,级别 1,状态 0
注意:-xp_servicecontrol
是一个未记录的系统存储过程,因此您不会获得任何支持,而且有可能发生代码更改或参数更改,因此如果您决定使用它,请注意这一点。
归档时间: |
|
查看次数: |
6135 次 |
最近记录: |