Cách 1 - Khi có nhiều Job và chỉ muốn chạy Job B sau khi Job A hoàn thành, có thể dùng SQL Server Agent Job Dependency:
2. Trong Step cuối cùng của Job A, gọi Job B bằng lệnh:
Read More »
1. Tắt Schedule của Job B, không cho nó chạy tự động.
2. Trong Step cuối cùng của Job A, gọi Job B bằng lệnh:
EXEC msdb.dbo.sp_start_job @job_name = N'Tên_Của_Job_B'
Ưu điểm: Đảm bảo chạy tuần tự giữa các Job.
Cách 2 - Trường hợp, Job A và Job B đều chạy Job Schedule và muốn tránh chạy song song.
Cách thực hiện là thêm 1 Step đầu tiên vào Job.
1. Thêm Step đầu tiên trong Job với dạng T-SQL Script như sau:
IF EXISTS ( SELECT 1 FROM msdb.dbo.sysjobactivity ja JOIN msdb.dbo.sysjobs j ON ja.job_id = j.job_id WHERE j.name = 'Tên_Của_Job' -- Thay tên Job của bạn vào đây AND ja.start_execution_date IS NOT NULL AND ja.stop_execution_date IS NULL ) BEGIN PRINT 'Job đang chạy, không tiếp tục thực hiện.' RETURN -- Kết thúc Step này, Job sẽ dừng lại END
2. Đặt Step này là Step đầu tiên trong Job.