使用sp_procoption和waitfor时间运行后台存储过程

时间:2018-03-30 13:30:42

标签: sql-server stored-procedures background master

我在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但没有帮助,因为它没有显示后台程序。

0 个答案:

没有答案