NEWS

[SQLSERVER] Hướng dẫn lập lịch tự động thực hiện câu lệnh SQL sử dụng SQL Agent jobs

[SQLSERVER] Hướng dẫn lập lịch tự động thực hiện câu lệnh SQL sử dụng SQL Agent jobs
Đăng bởi: Thảo Meo - Lượt xem: 19543 09:01:41, 31/12/2018DATABASE   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách lập lịch tự động thực hiện câu lệnh SQL sử dụng SQL Agent Jobs.

+ Yêu cầu:

Ví dụ: các bạn muốn thực hiện công việc như sau.

Đầu tiên các bạn tạo lệnh tăng ca cho nhân viên, nhưng các bạn muốn là vào lúc 12h00 thì các lệnh này mới được tự động kích hoạt.

Để thực hiện công việc này, SQL Agent Jobs sẽ giúp các bạn lập lịch dễ dàng.

Để thực hiện các bạn cần kích hoạt dịch vụ SQL Agent trong services.msc

sqlserver_job_hinh2

sqlserver_job_hinh1

Đầu tiên các bạn tạo cho mình một hàm Procedure dưới đây với tên sp_add_job_quick

USE msdb
go
CREATE procedure [dbo].[sp_add_job_quick] 
@job nvarchar(128),
@mycommand nvarchar(max), 
@servername nvarchar(28),
@startdate nvarchar(8),
@starttime nvarchar(8)
as
-- Thêm một jobs
EXEC dbo.sp_add_job
    @job_name = @job ;

EXEC sp_add_jobstep
    @job_name = @job,
    @step_name = N'process step',
    @subsystem = N'TSQL',
    @command = @mycommand
-- Cấu hình thời gian chạy job
exec sp_add_jobschedule @job_name = @job,
@name = 'MySchedule',
@freq_type=1,
@active_start_date = @startdate,
@active_start_time = @starttime
-- Thêm job vào sqlserver
EXEC dbo.sp_add_jobserver
    @job_name =  @job,
    @server_name = @servername

Sau khi các bạn, chạy procedure xong, bây giờ bạn muốn lập lịch chạy câu lệnh SQL server, bạn sẽ thực hiện như sau:

exec dbo.sp_add_job_quick 
@job = 'myjob', -- Tên job của bant
@mycommand = 'UPDATE tbl_lenhtangca SET status=1', -- Gõ câu lệnh T-SQL
@servername = 'serverName', -- Nhập tên server name, nếu server bạn chạy ở local, các bạn có thể thay bằng đoạn sau @servername=@@Servername
@startdate = '20181231', -- Ngày 31/12/2018
@starttime = '070000' -- Thời gian, 07:00:00
-- https://laptrinhvb.net

Để xóa một jobs các bạn thực hiện câu lệnh sau:

EXEC sp_delete_job  
    @job_name = N'myjob' ;  -- nhập tên job của bạn vào
GO  

Liệt kê danh sách tất cả các bạn đang có trong hệ thống server của bạn.

SELECT job_id, [name], * FROM msdb.dbo.sysjobs;

HAVE FUN :)

THÔNG TIN TÁC GIẢ

[SQLSERVER] Hướng dẫn lập lịch tự động thực hiện câu lệnh SQL sử dụng SQL Agent jobs
Đăng bởi: Thảo Meo - Lượt xem: 19543 09:01:41, 31/12/2018DATABASE   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp