Aktivieren Sie den SQL Server-Agentendienst über T-SQL-Skript oder PowerShell

7

Können wir den SQL Server-Agentendienst über T-SQL-Skript oder PowerShell / cmd aktivieren / deaktivieren?

Puskar
quelle
1
es ist nur ein net stopin cmd, nicht wahr?
Philᵀᴹ

Antworten:

4

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:

EXEC xp_servicecontrol N'Querystate|Start|Stop',N'Service Name' 

Wenn Sie den SQLServer Agent Service über TSQL starten möchten, lautet die Syntax wie folgt:

So starten Sie den SQL Server-Agenten

EXEC xp_servicecontrol N'START',N'SQLServerAGENT';
GO

So stoppen Sie den SQL Server-Agenten

EXEC xp_servicecontrol N'STOP',N'SQLServerAGENT';
GO

Wenn Sie den Dienststatus des SQL Server-Agent-Dienstes anzeigen möchten, lautet die Syntax wie folgt:

EXEC xp_servicecontrol N'querystate',N'SQLServerAGENT';
Go

Nach dem Starten des SQL Server-Agentendienstes wird eine solche Meldung angezeigt

Service gestartet

Meldung 22003, Ebene 1, Status 0

Nach dem Beenden des SQL Server-Agentendienstes wird eine solche Meldung angezeigt

Service gestoppt

Meldung 22003, Ebene 1, Status 0

Hinweis : - xp_servicecontrolist 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 .

Md Haidar Ali Khan
quelle
1
Tolle Informationen zum Starten und Stoppen des Dienstes, aber OP fragte nach dem Aktivieren / Deaktivieren, was damit nicht möglich ist (mehr schade).
Nic
7

Dies hängt davon ab, welche Version von PowerShell Sie ausführen. Dieser Befehl kann jedoch ab Version 3.0 verwendet werden:

Set-Service SQLSERVERAGENT -StartupType Disabled

Geben Sie hier die Bildbeschreibung ein

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_cmdshellPowerShell- oder cmd-Befehle verwenden und aufrufen.


quelle