Wenn Sie zum ersten Mal einen SQL Server-Agent-Auftrag erstellen, sollten Sie einen kurzen Test durchführen, um festzustellen, ob er tatsächlich ohne Probleme ausgeführt wird.
Dies ist ziemlich einfach, wenn Sie die SSMS-GUI verwenden, aber wie machen Sie es in T-SQL?
Antwort:Der sp_start_job
gespeicherte Prozedur.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
USE msdb;
GO
EXEC sp_start_job N'BackupKrankyKranesDB';
GO
In diesem Fall habe ich einen Job namens BackupKrankyKranesDB
ausgeführt .
Die Prozedur gibt keine Ergebnismengen zurück. Wenn Sie es jedoch in SSMS ausführen, sehen Sie möglicherweise eine Meldung wie diese:
Job 'BackupKrankyKranesDB' started successfully. Completion time: 2020-12-13T19:54:18.3503521-08:00
Parameter
Sie können auch die Parameternamen angeben. In diesem Fall hätte ich Folgendes tun können:
USE msdb;
GO
EXEC sp_start_job @job_name = N'BackupKrankyKranesDB';
GO
Sie können entweder den Jobnamen oder die Job-ID angeben (aber nicht beides). Die Job-ID ist eine eindeutige Kennung mit einem Standardwert von NULL
.
Daher hätten wir alternativ Folgendes tun können:
USE msdb;
GO
EXEC sp_start_job @job_id = '4FAE7031-36E8-4934-81E6-0D561F375627';
GO
Das ist die Job-ID des obigen Jobs. Offensichtlich müssen Sie die ID des Jobs verwenden, den Sie ausführen müssen. Sie können den sp_help_job
verwenden gespeicherte Prozedur zum Abrufen der Job-ID.
Die Syntax
Die eigentliche Syntax sieht so aus:
sp_start_job
{ [@job_name =] 'job_name'
| [@job_id =] job_id }
[ , [@error_flag =] error_flag]
[ , [@server_name =] 'server_name']
[ , [@step_name =] 'step_name']
[ , [@output_flag =] output_flag]
Siehe sp_start_job
auf der Microsoft-Website für eine Erläuterung jedes Arguments.
Auftragsverlauf anzeigen
Nachdem wir den Job ausgeführt haben, können wir jetzt sp_help_jobhistory
verwenden um zu überprüfen, ob es zum Auftragsverlauf hinzugefügt wurde:
EXEC sp_help_jobhistory
@job_name = 'BackupKrankyKranesDB',
@mode = 'FULL';
Mit @mode = 'FULL'
sorgt dafür, dass wir genauere Informationen erhalten.
Folgendes habe ich nach dem Ausführen des Jobs erhalten:
Siehe sp_help_jobhistory
Weitere Informationen zu diesem gespeicherten Verfahren finden Sie auf der Microsoft-Website.
Weitere Optionen zum Zurückgeben des Jobverlaufs finden Sie auch unter 4 Möglichkeiten, den SQL Server-Auftragsverlauf abzurufen.