我在SQL Server Express中创建了一个存储过程,我正在调用我的Web API,它运行正常。我希望它在后台播放,就像在SQL Server中使用waitfor
时间作业/计划一样,在master启动时自动启动它。
存储过程:
USE [master]
CREATE PROCEDURE [dbo].[MyBackgroundTask]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @timeToRun NVARCHAR(50)
SET @timeToRun = 'time'
WHILE 1 = 1
BEGIN
WAITFOR time @timeToRun
BEGIN
EXECUTE [master].[dbo].[CALLWEBSERVICE];
END
END
END
要从主启动开始,我使用了sp_procoption
:
sp_procoption @ProcName = 'MyBackgroundTask',
@OptionName = 'startup',
@OptionValue = 'on'
GO
我还使用此查询来获取在后台运行的例程任务列表:
SELECT ROUTINE_NAME
FROM MASTER.INFORMATION_SCHEMA.ROUTINES
WHERE OBJECTPROPERTY(OBJECT_ID(ROUTINE_NAME),'ExecIsStartup') = 1
我也让它在后台运行,但如何如何检查如果它真的在后台运行我如何检查结果我在后台运行存储过程?
我尝试过SQL Server Express Profiler但没有帮助,因为它没有显示后台程序。