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

Sử dụng sp_help_jobschedule trong SQL Server

Trong SQL Server, sp_help_jobschedule thủ tục được lưu trữ trả về thông tin về lịch trình công việc.

Bài viết này cung cấp tổng quan về quy trình được lưu trữ này bao gồm các ví dụ.

Cú pháp

Cú pháp chính thức như sau:

sp_help_jobschedule { [ @job_id = ] job_id | [ @job_name = ] 'job_name' }  
     [ , [ @schedule_name = ] 'schedule_name' ]  
     [ , [ @schedule_id = ] schedule_id ]  
     [ , [ @include_description = ] include_description ]

Khi bạn gọi sp_help_jobschedule , bạn phải cung cấp tên công việc hoặc ID của nó (nhưng không phải cả hai) hoặc ID lịch trình. Bạn cũng có thể chuyển tên của lịch biểu nhưng chỉ kết hợp với ID công việc hoặc tên của nó.

Sự kết hợp được chấp nhận là một chút khó khăn. Về cơ bản, nó diễn ra như thế này:

Nếu schedule_id được chỉ định, không phải job_id cũng không phải job_name có thể được chỉ định. Nếu không, job_id hoặc job_name các tham số có thể được sử dụng với schedule_name .

Tuy nhiên, bạn sẽ không thể sử dụng schedule_id nếu một lịch trình được đính kèm với nhiều công việc.

Lưu ý rằng sp_help_jobschedule nằm trong msdb cơ sở dữ liệu, vì vậy nó cần được chạy từ đó. Bạn có thể thực hiện việc này bằng cách chuyển sang msdb cơ sở dữ liệu (ví dụ:với USE msdb ), hoặc bằng cách xác định quy trình với tên cơ sở dữ liệu và giản đồ (tức là msdb.dbo.sp_help_jobschedule ).

Ví dụ

Dưới đây là một ví dụ để minh họa cách trả lại tất cả các lịch biểu được đính kèm với một công việc cụ thể:

EXEC sp_help_jobschedule
	@job_name = 'SqlAgentTest';

Kết quả:

Thao tác này trả về danh sách lịch biểu được đính kèm với công việc được chỉ định với @job_name đối số.

Ngoài ra, tôi có thể đã vượt qua @job_id :

EXEC sp_help_jobschedule
	@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';

Nhưng trong trường hợp đó, tôi không thể sử dụng @job_name (đó là cái này hoặc cái kia).

Khi sử dụng ID công việc, bạn có thể bỏ qua tên tham số nếu muốn:

EXEC sp_help_jobschedule '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';

Sử dụng @schedule_id Tham số

Ngoài ra, bạn có thể nhận được một lịch biểu dựa trên ID của nó:

EXEC sp_help_jobschedule
	@schedule_id = 15;

Điều này hoạt động tốt miễn là lịch trình không bị ràng buộc với nhiều công việc.

Đây là những gì sẽ xảy ra khi một lịch biểu được đính kèm với nhiều công việc:

EXEC sp_help_jobschedule
	@schedule_id = 14;

Kết quả:

Msg 14369, Level 16, State 1, Procedure sp_help_jobschedule, Line 69 [Batch Start Line 22]
 The schedule ID "14" is used by more than one job. Specify the job_id.

Và mặc dù nó yêu cầu chỉ định job_id , nếu bạn làm điều này, bạn sẽ cần xóa schedule_id (như đã đề cập, nếu bạn vượt qua schedule_id , bạn không thể bao gồm job_name hoặc job_id ).

Để chứng minh điều này, nếu tôi chỉ cần thêm job_id và giữ schedule_id ở đó, tôi gặp lỗi sau.

EXEC sp_help_jobschedule
	@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8',
	@schedule_id = 14;

Kết quả:

Msg 14273, Level 16, State 1, Procedure sp_help_jobschedule, Line 51 [Batch Start Line 22]
 You must provide either @job_id or @job_name (and, optionally, @schedule_name), or @schedule_id.

Bao gồm Mô tả

Một điều khác bạn có thể làm là chỉ định xem có đưa vào mô tả của lịch trình hay không.

Theo mặc định, mô tả không được bao gồm trong tập kết quả. Trên thực tế, schedule_description cột bao gồm, nhưng nó không chứa mô tả, trừ khi bạn yêu cầu rõ ràng. Nếu bạn không yêu cầu, hãy schedule_description cột hiển thị (Description not requested.) .

@include_description tham số là bit , với giá trị mặc định là 0 , có nghĩa là nó không hiển thị mô tả. Chuyển giá trị 1 kết quả là mô tả được hiển thị.

EXEC sp_help_jobschedule
	@job_name = 'SqlAgentTest',
	@include_description = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. So sánh máy ảo trên đám mây với cơ sở dữ liệu đám mây được quản lý

  2. Sử dụng đám mây Spotlight để giải quyết việc chặn máy chủ SQL

  3. Cách khắc phục “Không thành công câu lệnh ALTER TABLE SWITCH” Msg 4982 (SQL Server)

  4. Microsoft Access so với SQL Server

  5. Chuyển đổi Mili giây UTC thành DATETIME trong máy chủ SQL