我在做一个竞价系统。
人们在竞价开始时出价,当竞价结束时,他们会得到结果。
是否可以使用query创建SQL作业?
我想做的是,一旦招标时间结束,我想更新每个投标人的记录,谁是赢家或输家。
所以,我的想法是,当管理员设置竞价的开始日期和结束日期时,我想动态创建一个计划作业,它将自动运行存储的proc,当日期等于结束日期时,将更新每个记录。
有可能吗?
我想的另一种方式是,在竞价页面上放置一个检查器,它将不断与数据库检查竞价时间,如果它检测到竞价已经结束,它将自动执行一个存储的过程,更新每个用户记录?这种方法让我害怕的是,如果有很多用户正在访问页面,那么现在很多用户都会调用这个存储的proc。
非常感谢您的任何建议。
发布于 2020-03-16 12:12:29
--Create job
USE msdb ;
GO
EXEC dbo.sp_add_job
@job_name = N'Weekly Sales Data Backup' ;
GO --Add schedule to your job
EXEC msdb.dbo.sp_add_jobschedule
@job_name = N'Weekly Sales Data Backup', -- Job name
@name = N'Weekly_Sat_2AM', -- Schedule name
@freq_type = 8, -- Weekly
@freq_interval = 64, -- Saturday
@freq_recurrence_factor = 1, -- every week
@active_start_time = 20000 -- 2:00 AM-- creates a job step that uses Transact-SQL
USE msdb;
GO
EXEC sp_add_jobstep
@job_name = N'Weekly Sales Data Backup',
@step_name = N'Set database to read only',
@subsystem = N'TSQL',
@command = N'ALTER DATABASE SALES SET READ_ONLY',
@retry_attempts = 5,
@retry_interval = 5 ;
GO 完整的sp_add_jobstep参数列表
sp_add_jobstep [ @job_id = ] job_id | [ @job_name = ] 'job_name'
[ , [ @step_id = ] step_id ]
{ , [ @step_name = ] 'step_name' }
[ , [ @subsystem = ] 'subsystem' ]
[ , [ @command = ] 'command' ]
[ , [ @additional_parameters = ] 'parameters' ]
[ , [ @cmdexec_success_code = ] code ]
[ , [ @on_success_action = ] success_action ]
[ , [ @on_success_step_id = ] success_step_id ]
[ , [ @on_fail_action = ] fail_action ]
[ , [ @on_fail_step_id = ] fail_step_id ]
[ , [ @server = ] 'server' ]
[ , [ @database_name = ] 'database' ]
[ , [ @database_user_name = ] 'user' ]
[ , [ @retry_attempts = ] retry_attempts ]
[ , [ @retry_interval = ] retry_interval ]
[ , [ @os_run_priority = ] run_priority ]
[ , [ @output_file_name = ] 'file_name' ]
[ , [ @flags = ] flags ]
[ , { [ @proxy_id = ] proxy_id
| [ @proxy_name = ] 'proxy_name' } ] 发布于 2020-03-16 12:34:16
我认为,一旦投标时间结束,系统通知投标人是更好的方法,原因如下:
我不建议你去找有活力的工作。原因是:
我建议你找一份频率很短的静态工作
https://stackoverflow.com/questions/60699981
复制相似问题