我想每5分钟运行一次查询。我想知道SQL Server中是否存在类似计时器的东西。
这对我真的很有帮助。我在谷歌上搜索了很多,但没有得到任何帮助。
非常感谢您的建议。Pooja
您可以通过gui或使用以下存储过程创建SQL代理作业:https://technet.microsoft.com/en-us/library/ms181153(v=sql.105).aspx
另请查看此示例(借用自https://www.mssqltips.com/sqlservertip/3052/simple-way-to-create-a-sql-server-job-using-tsql/):
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
--Add a job
EXEC dbo.sp_add_job
@job_name = @job ;
--Add a job step named process step. This step runs the stored procedure
EXEC sp_add_jobstep
@job_name = @job,
@step_name = N'process step',
@subsystem = N'TSQL',
@command = @mycommand
--Schedule the job at a specified date and time
exec sp_add_jobschedule @job_name = @job,
@name = 'MySchedule',
@freq_type=1,
@active_start_date = @startdate,
@active_start_time = @starttime
-- Add the job to the SQL Server Server
EXEC dbo.sp_add_jobserver
@job_name = @job,
@server_name = @servername
exec dbo.sp_add_job_quick
@job = 'myjob', -- The job name
@mycommand = 'sp_who', -- The T-SQL command to run in the step
@servername = 'serverName', -- SQL Server name. If running localy, you can use @servername=@@Servername
@startdate = '20130829', -- The date August 29th, 2013
@starttime = '160000' -- The time, 16:00:00
创建一个批处理文件,并使用windows调度程序每五分钟触发一次。或者在中编写服务。净
-
使用SQL Server代理作业
-
维护计划
-
Windows作业调度程序
-
在SSMS查询窗口上运行的技巧(不建议用于生产或主计划)
如果你需要在SSMS上运行一个简单的查询,你可以使用WAITFOR DELAY
语句
例如:
Declare @a int = 0
WHILE 1=1
BEGIN
-- Example code
EXEC sp_WhoIsActive -- You can write you query or code
WAITFOR DELAY '00:05:00'
IF @a = 10
Break;
SET @a = @a + 1
END
参数@a对于运行计数很重要。限制在此查询中运行10次。,或者此查询一直运行到,您的会话处于打开状态。当您关闭会话或停止运行时,此查询将停止工作。
这不是一个最佳实践,并用于典型的工作技巧。为了测试,检查结果。。。这不是生产长时间的想法