เนื่องจากที่ผ่านมาผมได้ใช้ SQL Server Agent และเห็นว่ามีประโยชน์ วันนี้ผมเลยจะมาแชร์เรื่องการใช้ งาน SQL Server Agent ใน โปรแกรม SQL Server กันครับ
SQL Server Agent คืออะไร?
SQL Server Agent เป็นการกำหนดงานอัตโนมัติให้กับ SQL Server เพื่อทำงานของระบบที่ทำงานเป็นประจำหรือตั้งไว้ล่วงหน้าครับ
ผมขอยกตัวอย่างเพื่อให้เข้าใจยิ่งขึ้นเช่น
ผมมี Database เยอะมากๆๆ และผมจำเป็นที่จะต้อง Back up Database ทุกเดือนซึ่งเมื่อก่อนเนี่ยเมื่อถึงต้นเดือนผมก็จะเข้าไป SQL Server เพื่อ Back Up Database หลายๆ Database จึงทำให้เสียเวลาครับ
จะดีกว่าใหมที่มีเครื่องมือที่่สามารถ Back up Database แทนเราอัตโนมัติทุกเดือน ซึ่ง SQL Server Agent สามารถช่วยได้ครับ
จะดีกว่าใหมที่มีเครื่องมือที่่สามารถ Back up Database แทนเราอัตโนมัติทุกเดือน ซึ่ง SQL Server Agent สามารถช่วยได้ครับ
| รูปภาพแสดง SQL Server Agent |
การเปิดใช้งาน
โดย Default SQL Server Agent จะ Stop การทำงานของ SQL Server Agent เราจำเป็นที่จะต้อง Start ตัว SQL Server Agent ก่อนจะใช้งาน โดยคลิกขวาไปที่ SQL Server Agent -> Start ดังรูปครับ
![]() |
| รูปภาพแสดงวิธีการ Start SQL Server Agent |
การใช้งาน SQL Server Agent
ใน SQL Server Agent จะแบ่งหัวข้อออกออกเป็นดังนี้
- Jobs คือ เป็นตัวกำหนดช่วงเวลาที่ต้องการให้ทำงาน
- Alerts คือ จะแจ้งเหตุการณ์เมื่อมี เหตุการณ์ หรือ Error ตรงตามที่กำหนดไว้
- Proxies คือ การสั่งงานผ่าน Proxy
- Error Logs คือ ประวัติการทำงานของ Jobs ว่าทำงานได้ปกติหรือไม่
| รูปภาพแสดง SQL Server Agent เมื่อทำการ Start เรียบร้อยแล้ว |
สมมุติตัวอย่างผมต้องการให้ SQL Server Agent ทำการ BackUp ข้อมูลทุกวันที่ 1 เวลาเที่ยงคืนของทุกเดือน (ที่ผมเลือกเที่ยงคืนเพราะว่าเที่ยงคืนไม่ค่อยมีคนใช้งานจึงไม่ส่งกระทบกับระบบมากนัก) ผมก็จำเป็นที่จะต้องตั้งค่า SQL Server Agent ดังนั้ครับ
![]() |
| รูปภาพแสดงการ New Job |
2. ทำการตั้งชื่ออะไรก็ได้ของงาน และ ใส่คำอธิบายลงไป ตามรูปด้านล่าง
a. คือ ให้ใส่ชื่อของงาน
b. คือ ให้ใส่คำอธิบายของงาน
![]() |
| รูปภาพแสดงการตั้งชื่อและคำอธิบายของ Job |
3. กด Step ตรง Panel Select a page และ ทำการกดปุ่ม New เพื่อสร้าง Step ขึ้นมา (Step คือคำสั่งที่ต้องการกระทำเมื่องานถึงเวลาที่กำหนด) ตามรูปด้านล่าง
a. คือ การคลิกปุ่ม Step
b. คือ การคลิกปุ่ม New
![]() |
| รูปภาพเข้าหน้า Step |
4. หน้าต่าง New Job Step จะแสดงขึ้นมา หลังจากนั้น ให้ใส่ชื่อ Step -> เลือก Type เป็น T-SQL -> เลือก Database ที่จะรันร่วมกับ T-SQL -> ใส่คำส่อง T-SQL -> กดปุ่ม OK
a. คือ สำหรับใส่ชื่อ Step ซึ่งเป็นชื่ออะไรก็ได้ (ในตัวอย่างนี้ผมใส่ว่า "BackUp Database Test")
b. คือ เลือกว่าเราต้องการใช้คำสั้งแบบใหนในการสั่งงาน (ในตัวอย่างนี้ผมเลือกเป็น "Transact-SQL script (T-SQL)")
c. คือการเลือกว่าจะให้ คำสั่ง T-SQL มีผลต่อถังDatabase ถังใหน (ในตัวอย่างผมเลือกถังชื่อว่า "Test" เพราะผมต้องการ Back Up Database ถังที่ชื่อว่า "Test" ครับ)
d. คือช่องใส่คำสั่ง T-SQL (ในตัวอย่างนี้ผมใส่คำสั่ง Back Up Database ถังที่ชื่อว่า Test ไปไว้ที่ Drive: C:\TEST\SQL\ แล้วตั้งชื่อไฟล์ที่ Back Up ว่า test2_backup_[year]-[Month]-[day].bak ดังนี้ครับ
Declare @DatabaseName varchar(50)
Declare @PathTo varchar(300)
Declare @Fullpath varchar(300)
set @DatabaseName = 'Test'
set @PathTo = 'C:\Test\SQL\'
set @Fullpath = @PathTo + @DatabaseName + '_backup_'
+ convert(varchar,year(getDate())) + '-'
+ convert(varchar,month(getDate())) + '-'
+ convert(varchar,day(getDate())) + '.bak'
BACKUP DATABASE @DatabaseName TO
DISK=@Fullpath with NOFORMAT, INIT
)
![]() |
| รูปภาพแสดงการตั้งค่า Step |
5. กด Schedules ตรง Panel Select a page และ ทำการกดปุ่ม New เพื่อสร้าง Schedules ขึ้นมา (Schedules คือหน้าไว้กำหนดช่วงเวลาที่ต้องทำงาน) ตามรูปด้านล่าง
a. คือ การคลิกปุ่ม Schedules
b. คือ การคลิกปุ่ม New
![]() |
| รูปภาพเข้าหน้า Schedule |
6. หน้าต่าง New Job Schedule จะแสดงขึ้นมา หลังจากนั้น ให้ตั้งชื่อ Schedule ตั้งเวลาที่ต้องการทำงาน เสร็จแล้วกด ปุ่ม OK ดังรูปด้านล่าง
a. คือการตั้งชื่อ Schedule เป็นอะไรก็ได้ (ในตัวอย่างนี้ผมตั้งชื่อว่า NightTime)
b. คือตั้งช่วงเวลาที่ต้องให้ทำงาน (ในตัวอย่างนี้ผมตั้งเป็น Month)
c. คือการตั้งเวลาว่าให้ทำงานเวลากี่โมง (ในตัวอย่างนี้ผมตั้งเป็นเที่ยงคืนคือ 00:00:00)
d. คือการตั้งให้ทำงานตลอดไปโดยไม่มีที่สิ่นสุด
![]() |
| รูปภาพการตั้งค่า Schedule |
7. ให้กดปุ่ม OK อีกครั้ง เป็นการเสร็จสิ้นการตั้งค่า่ครับตามรูปด้านล่างครับ
![]() |
8. ทดสอบการทำงานโดยการ คลิกขวาที่ตามชื่อ JOB ที่เราสร้าง -> Start Job As Step...
![]() |
| รูปภาพแสดงการทดสอบรัน Job ที่เราสร้าง |
จะขึ้นหน้าต่างแสดงสถานะการทำงานครับ หากไม่มี ERROR แสดงว่า Job ที่เราสร้างสามารถทำงานได้สมบูรณ์
| รูปภาพแสดงผลของการทดสอบรัน Job |
หลังจากนี้ SQL Server Agent ก็จะทำงาน Back Up Database ของเรา Auto แล้วครับโดยที่เราไม่ต้องเข้าไป Back Up เองอีกแล้วครับ
ผมหวังว่าโพสน์นี้จะมีประโยชน์กับผู้อ่านครับขอบคุณครับ









มีประโยชน์มากๆครับ
ตอบลบ