Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách chạy công việc tác nhân máy chủ SQL bằng T-SQL

Khi bạn lần đầu tiên tạo công việc SQL Server Agent, bạn có thể muốn thực hiện kiểm tra nhanh để xem liệu nó có thực sự chạy mà không gặp bất kỳ sự cố nào hay không.

Điều này khá đơn giản khi sử dụng SSMS GUI, nhưng làm thế nào để bạn làm điều đó trong T-SQL?

Trả lời:sp_start_job thủ tục được lưu trữ.

Ví dụ

Dưới đây là một ví dụ để chứng minh:

USE msdb;  
GO  
  
EXEC sp_start_job N'BackupKrankyKranesDB';
GO

Trong trường hợp này, tôi đã chạy một công việc có tên là BackupKrankyKranesDB .

Thủ tục không trả về bất kỳ tập hợp kết quả nào. Tuy nhiên, nếu bạn chạy nó trong SSMS, bạn có thể thấy một thông báo như sau:

Job 'BackupKrankyKranesDB' started successfully.
 Completion time: 2020-12-13T19:54:18.3503521-08:00

Tham số

Bạn cũng có thể cung cấp tên tham số. Trong trường hợp đó, tôi có thể đã làm điều này:

USE msdb;  
GO  
  
EXEC sp_start_job @job_name = N'BackupKrankyKranesDB';
GO

Bạn có thể cung cấp tên công việc hoặc ID công việc (nhưng không phải cả hai). ID công việc là mã bảo mật duy nhất với mặc định là NULL .

Do đó, chúng tôi có thể làm điều này theo cách khác:

USE msdb;  
GO  
  
EXEC sp_start_job @job_id = '4FAE7031-36E8-4934-81E6-0D561F375627';
GO

Đó là ID công việc của công việc trên. Rõ ràng là bạn cần phải sử dụng ID của công việc bạn cần thực hiện. Bạn có thể sử dụng sp_help_job thủ tục được lưu trữ để lấy ID công việc.

Cú pháp

Cú pháp thực tế như sau:

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]

Xem sp_start_job trên trang web của Microsoft để biết giải thích về từng đối số.

Xem lịch sử công việc

Bây giờ chúng tôi đã chạy công việc, bây giờ chúng tôi có thể sử dụng sp_help_jobhistory để kiểm tra xem nó đã được thêm vào lịch sử công việc chưa:

EXEC sp_help_jobhistory 
	@job_name = 'BackupKrankyKranesDB',
	@mode = 'FULL';

Sử dụng @mode = 'FULL' đảm bảo rằng chúng tôi nhận được thông tin chi tiết hơn.

Đây là những gì tôi nhận được sau khi điều hành công việc:

Xem sp_help_jobhistory trên trang web của Microsoft để biết thêm thông tin về quy trình được lưu trữ này.

Ngoài ra, hãy xem 4 Cách Nhận Lịch sử Công việc Máy chủ SQL để có thêm các tùy chọn để trả về lịch sử công việc.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PARSE () so với TRY_PARSE () trong SQL Server:Sự khác biệt là gì?

  2. Có cách nào để chèn hoặc cập nhật SQLBulkCopy nếu tồn tại không?

  3. DBA - Cách giết tất cả các quy trình cơ sở dữ liệu trên máy chủ SQL

  4. Spotlight Cloud Basic:Công cụ giám sát hiệu suất cơ sở dữ liệu miễn phí tốt nhất

  5. So sánh ngày tháng trong T-SQL, bỏ qua phần thời gian