Können wir den SQL Server-Agentendienst über T-SQL-Skript oder PowerShell / cmd aktivieren / deaktivieren?
7
Können wir den SQL Server-Agentendienst über T-SQL-Skript oder PowerShell / cmd aktivieren / deaktivieren?
net stop
in cmd, nicht wahr?Antworten:
Ohne die in der Antwort von @ Shawn Melton angegebenen Punkte zu berücksichtigen, gibt es eine bestimmte undokumentierte gespeicherte Prozedur, die dies tut. Es ist
xp_servicecontrol
. Hiermit können Sie den Dienststatus des SQL Server-Agentendienstes in TSQL starten, stoppen und überprüfen.Wenn Sie den Status "Ausführen / Stoppen" des SQL Server-Agentendienstes starten, stoppen oder anzeigen möchten, lautet die Syntax:
Wenn Sie den SQLServer Agent Service über TSQL starten möchten, lautet die Syntax wie folgt:
So starten Sie den SQL Server-Agenten
So stoppen Sie den SQL Server-Agenten
Wenn Sie den Dienststatus des SQL Server-Agent-Dienstes anzeigen möchten, lautet die Syntax wie folgt:
Nach dem Starten des SQL Server-Agentendienstes wird eine solche Meldung angezeigt
Nach dem Beenden des SQL Server-Agentendienstes wird eine solche Meldung angezeigt
Hinweis : -
xp_servicecontrol
ist eine undokumentierte gespeicherte Systemprozedur, daher erhalten Sie keine Unterstützung dafür und es besteht außerdem die Möglichkeit von Codeänderungen oder Parameteränderungen. Beachten Sie dies, wenn Sie sich für die Verwendung dieser Prozedur entscheiden.Referenz siehe hier und hier .
quelle
Dies hängt davon ab, welche Version von PowerShell Sie ausführen. Dieser Befehl kann jedoch ab Version 3.0 verwendet werden:
Die Alternative wäre die Verwendung von WMI, oder Sie können SQL Server WMI (microsoft.sqlserver.management.smo.wmi-Namespace) verwenden.
In T-SQL gibt es keinen nativen Mechanismus, mit dem Sie mit den Diensten interagieren können. Außer nur
xp_cmdshell
PowerShell- oder cmd-Befehle verwenden und aufrufen.quelle