use tempdb
if exists(select * from msdb.dbo.sysjobs where name='20秒一次的作業')
exec msdb.dbo.sp_delete_job @job_name='20秒一次的作業'
--定義建立作業
declare @jobid uniqueidentifier
exec msdb.dbo.sp_add_job
@job_name = n'20秒一次的作業',
@job_id = @jobid output
--定義作業步驟
declare @sql nvarchar(400),@dbname sysname
select @dbname=db_name(),
@sql=n'
declare @dt datetime
set @dt=dateadd(minute,1,getdate())
while @dt>getdate()
begin
if exists(select * from sysobjects where name=''tb_log'')
insert tb_log values(convert(char(8),getdate(),108))
else
select dt=convert(char(8),getdate(),108) into tb_log
waitfor delay ''00:00:20''
end'
exec msdb.dbo.sp_add_jobstep
@job_id = @jobid,
@step_name = n'作業步驟名稱',
@subsystem = 'tsql',
@database_name=@dbname,
@command = @sql
--建立排程
exec msdb..sp_add_jobschedule
@job_id = @jobid,
@name = n'每分鐘執行的排程',
@freq_type=4,
@freq_interval=1,
@freq_subday_type=0x4,
@freq_subday_interval=1,
@active_start_time = 000000
--新增目標伺服器
declare @servername sysname
set @servername=convert(nvarchar(128),serverproperty(n'servername'))
exec msdb.dbo.sp_add_jobserver
@job_id = @jobid,
@server_name = @servername
go--等待2分鐘後檢視結果
waitfor delay '00:02:00'
select * from tb_log order by dt
go--刪除測試
drop table tb_log
exec msdb.dbo.sp_delete_job @job_name='20秒一次的作業'
/*--結果
dt
--------
15:08:00
15:08:20
15:08:40
--*/
實現秒級作業的示例 多個作業排程 sql
use tempdb if exists select from msdb.dbo.sysjobs where name 30秒一次的作業 exec msdb.dbo.sp delete job job name 30秒一次的作業 定義建立作業 declare jobid uniqueidentif...
利用crond實現秒級執行的辦法
昨天在設定 目錄的安全時候,為了安全方面的考慮需要將某個目錄下的檔案3秒清空一次,第一反應是通過cron來解決,可crontab似乎只支援到分,怎麼辦呢?經過一番努力,終於解決了,分享一下方法,希望幫助到有類似需求的同學。小編在這裡先簡單介紹下cron是個什麼東西。crontab命令常見於unix和...
作業1,秒錶,定時器的實現
主要任務為 1,oled顯示秒錶時間,當前模式 2,秒錶模式可以記錄幾個時間 3,秒錶模式下10ms傳送串列埠資料,當前時間和模式 4,通過按鍵更改,轉換成定時器模式 5,定時器模式下可以自行設定初始時間,並倒計時 6,倒計時情況下燈逐漸熄滅 秒錶部分 if flag ks0作為開始按鈕,點選後啟動...