Sql 如何检查存储过程是否计划在特定时间运行
在我的SQL Server 2008中,存储过程Sql 如何检查存储过程是否计划在特定时间运行,sql,sql-server,sql-server-2008,stored-procedures,scheduled-tasks,Sql,Sql Server,Sql Server 2008,Stored Procedures,Scheduled Tasks,在我的SQL Server 2008中,存储过程p_ABC计划每天凌晨2点运行 但是,我如何验证此过程p_ABC是否计划在每天凌晨2点运行,并且始终在凌晨2点运行。?是否有任何查询来获取计划在特定时间运行的过程的列表?我不知道有任何选项可以简单地查询SQL以确定存储过程何时运行。我有一系列的审计表来存储这些信息。它花了一点时间来设置,但会给你一切你需要的 在较高级别上,您需要在每个存储过程中执行以下操作: 调用将为特定作业分配新(递增)id的存储过程。此过程还将在表中存储正在运行(作为参数传递)
p_ABC
计划每天凌晨2点运行
但是,我如何验证此过程
p_ABC
是否计划在每天凌晨2点运行,并且始终在凌晨2点运行。?是否有任何查询来获取计划在特定时间运行的过程的列表?我不知道有任何选项可以简单地查询SQL以确定存储过程何时运行。我有一系列的审计表来存储这些信息。它花了一点时间来设置,但会给你一切你需要的
在较高级别上,您需要在每个存储过程中执行以下操作:
这很有效,因为您知道运行的内容、运行的时间以及运行所需的时间。不确定这正是您需要的,但您可以查看下面的这段代码 你也可以在那里找到它: 使用这种方法,您可以列出所有存储过程(按名称),然后查找包含这些存储过程的所有作业(或更具体的步骤) 请参考此问题/答案,列出存储程序:
谢谢这是一个太老的问题,但我仍在发布这个问题。你可以试试-
CREATE PROCEDURE MyTask
AS
BEGIN
SET NOCOUNT ON;
-- For executing the stored procedure at 11:00 P.M
declare @delayTime nvarchar(50)
set @delayTime = '23:00'
while 1 = 1
begin
waitfor time @delayTime
begin
--Name for the stored proceduce you want to call on regular bases
execute [DatabaseName].[dbo].[StoredProcedureName];
end
end
END
那么
@marc_感谢你这么说你在谈论工作吗?@GiorgiNakeuri不知道我该如何实现这一点。这些过程是否在sql server作业下运行?或者可能有一些windows服务或其他东西?主持人:请求将问题迁移到
CREATE PROCEDURE MyTask
AS
BEGIN
SET NOCOUNT ON;
-- For executing the stored procedure at 11:00 P.M
declare @delayTime nvarchar(50)
set @delayTime = '23:00'
while 1 = 1
begin
waitfor time @delayTime
begin
--Name for the stored proceduce you want to call on regular bases
execute [DatabaseName].[dbo].[StoredProcedureName];
end
end
END
-- Sets stored procedure for automatic execution.
sp_procoption @ProcName = 'MyTask',
@OptionName = 'startup',
@OptionValue = 'on'