Saya perlu tahu cara membuat kueri SQL berjalan setiap hari menggunakan pekerjaan Agen Server SQL, dengan pengaturan konfigurasi minimum yang diperlukan.
Saya perlu tahu cara membuat kueri SQL berjalan setiap hari menggunakan pekerjaan Agen Server SQL, dengan pengaturan konfigurasi minimum yang diperlukan.
Jawaban:
Perluas node Agen Server SQL dan klik kanan node Pekerjaan di Agen Server SQL dan pilih 'New Job'
Di 'New Job'
jendela masukkan nama pekerjaan dan deskripsi di 'General'
tab.
Pilih 'Steps'
di sisi kiri jendela dan klik 'New'
di bagian bawah.
Di 'Steps'
jendela masukkan nama langkah dan pilih database yang Anda inginkan untuk menjalankan kueri.
Tempelkan perintah T-SQL yang ingin Anda jalankan ke jendela Command dan klik 'OK'
.
Klik 'Schedule'
menu di sebelah kiri jendela New Job dan masukkan informasi jadwal (mis. Harian dan waktu).
Klik 'OK'
- dan seharusnya begitu.
(Tentu saja ada opsi lain yang dapat Anda tambahkan - tetapi saya akan mengatakan itu adalah minimum yang Anda butuhkan untuk mengatur dan menjadwalkan pekerjaan)
Saya membuat GIF animasi dari langkah-langkah dalam jawaban yang diterima. Ini dari MSSQL Server 2012
Untuk melakukan ini di t-sql, Anda dapat menggunakan prosedur tersimpan sistem berikut untuk menjadwalkan pekerjaan harian. Contoh ini dijadwalkan setiap hari pada jam 1:00 pagi. Lihat bantuan Microsoft untuk detail tentang sintaks dari prosedur tersimpan individu dan rentang parameter yang valid.
DECLARE @job_name NVARCHAR(128), @description NVARCHAR(512), @owner_login_name NVARCHAR(128), @database_name NVARCHAR(128);
SET @job_name = N'Some Title';
SET @description = N'Periodically do something';
SET @owner_login_name = N'login';
SET @database_name = N'Database_Name';
-- Delete job if it already exists:
IF EXISTS(SELECT job_id FROM msdb.dbo.sysjobs WHERE (name = @job_name))
BEGIN
EXEC msdb.dbo.sp_delete_job
@job_name = @job_name;
END
-- Create the job:
EXEC msdb.dbo.sp_add_job
@job_name=@job_name,
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=2,
@notify_level_netsend=2,
@notify_level_page=2,
@delete_level=0,
@description=@description,
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=@owner_login_name;
-- Add server:
EXEC msdb.dbo.sp_add_jobserver @job_name=@job_name;
-- Add step to execute SQL:
EXEC msdb.dbo.sp_add_jobstep
@job_name=@job_name,
@step_name=N'Execute SQL',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_fail_action=2,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0,
@subsystem=N'TSQL',
@command=N'EXEC my_stored_procedure; -- OR ANY SQL STATEMENT',
@database_name=@database_name,
@flags=0;
-- Update job to set start step:
EXEC msdb.dbo.sp_update_job
@job_name=@job_name,
@enabled=1,
@start_step_id=1,
@notify_level_eventlog=0,
@notify_level_email=2,
@notify_level_netsend=2,
@notify_level_page=2,
@delete_level=0,
@description=@description,
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=@owner_login_name,
@notify_email_operator_name=N'',
@notify_netsend_operator_name=N'',
@notify_page_operator_name=N'';
-- Schedule job:
EXEC msdb.dbo.sp_add_jobschedule
@job_name=@job_name,
@name=N'Daily',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=1,
@active_start_date=20170101, --YYYYMMDD
@active_end_date=99991231, --YYYYMMDD (this represents no end date)
@active_start_time=010000, --HHMMSS
@active_end_time=235959; --HHMMSS
Menggunakan T-SQL: Pekerjaan saya adalah menjalankan prosedur yang tersimpan. Anda dapat dengan mudah mengubah @command
untuk menjalankan sql Anda.
EXEC msdb.dbo.sp_add_job
@job_name = N'MakeDailyJob',
@enabled = 1,
@description = N'Procedure execution every day' ;
EXEC msdb.dbo.sp_add_jobstep
@job_name = N'MakeDailyJob',
@step_name = N'Run Procedure',
@subsystem = N'TSQL',
@command = 'exec BackupFromConfig';
EXEC msdb.dbo.sp_add_schedule
@schedule_name = N'Everyday schedule',
@freq_type = 4, -- daily start
@freq_interval = 1,
@active_start_time = '230000' ; -- start time 23:00:00
EXEC msdb.dbo.sp_attach_schedule
@job_name = N'MakeDailyJob',
@schedule_name = N'Everyday schedule' ;
EXEC msdb.dbo.sp_add_jobserver
@job_name = N'MakeDailyJob',
@server_name = @@servername ;
Berikut kode contoh:
Exec sp_add_schedule
@schedule_name = N'SchedulName'
@freq_type = 1
@active_start_time = 08300
Jika Anda ingin backup harian // mengikuti penyimpanan skrip sql di C: \ Users \ admin \ Desktop \ DBScript \ DBBackUpSQL.sql
DECLARE @pathName NVARCHAR(512),
@databaseName NVARCHAR(512) SET @databaseName = 'Databasename' SET @pathName = 'C:\DBBackup\DBData\DBBackUp' + Convert(varchar(8), GETDATE(), 112) + '_' + Replace((Convert(varchar(8), GETDATE(), 108)),':','-')+ '.bak' BACKUP DATABASE @databaseName TO DISK = @pathName WITH NOFORMAT,
INIT,
NAME = N'',
SKIP,
NOREWIND,
NOUNLOAD,
STATS = 10
GO
buka Penjadwal tugas
buat tugas-> pilih Triggers
tab Pilih New
.
Tombol Pilih tombol Radio Harian
klik Ok
Tombol
lalu klik Action
tab Select New.
Tombol Letakkan "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE"
-S ADMIN-PC -i "C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql"
di kotak teks program / skrip (pastikan Cocokkan jalur file Anda dan Letakkan jalur yang dikutip ganda di start-> kotak pencarian dan jika ditemukan, klik dan lihat cadangan ada atau tidak )
- jalur di atas dapat berupa 100 tulis 90 "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S ADMIN-PC -i
"C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql"
lalu klik tombol ok
Script akan dijalankan pada waktu yang Anda pilih pada tab Trigger setiap hari
bersenang senang lah.............