标签: sql-job

有没有办法将SQL Server作业设置为每30秒运行一次?

当我尝试创建一个Schedule时,我可以选择的最短时间是1分钟,有没有办法将其减少到几秒钟?

sql-server scheduled-tasks sql-job

6
推荐指数
1
解决办法
8553
查看次数

检测未按计划运行的作业

我正在尝试编写一个SQL查询,它告诉我SQL作业是否已根据其计划运行.例如,如果一项工作计划在中午12:00运行,而我们是在下午12:05而且仍然没有运行,我想知道这一点.检测到这种情况的最佳方法是什么?

过去发生的事情是我们定期运行SQL作业,而SQL Server没有运行它们.为了防止这种情况,我们希望针对SQL Server 2008 R2运行查询并检查作业是否运行,然后在未运行时触发警报.

谢谢您的帮助!

sql sql-server sql-server-2008-r2 sql-job

6
推荐指数
1
解决办法
2760
查看次数

参数变量在SSIS包上是只读的吗?

我在SSIS项目中定义了如下所示的参数

在此输入图像描述

那么我想在我的sql agent-job上更改那些可选项,我的定义如下.

在此输入图像描述

即使我试图设置修复日期值而不是getdate但它返回一条错误消息告诉我

错误:2014-12-19 16:30:21.56代码:0xC001F016源:包描述:更改变量的值失败,因为它是参数变量.参数变量是只读的.结束错误DTExec:无法将\ Package.Variables [startdate] .Value值设置为18.12.2014.开始时间:16:30:21完成时间:16:30:21经过时间:0.296秒.包执行失败.步骤失败了.

参数是只读的吗?如果是的话,如果我只能在项目中设置它们,那么使用参数的意义是什么.有变数,他们会做同样的工作.如果我做错了什么,请给我一些启示?

我试图在项目级别而不是在sql作业中添加getdate()而不是修复值但是也不允许这样做.为什么?

谢谢.

sql-server ssis sql-job

6
推荐指数
1
解决办法
4149
查看次数

每天在用户配置的时间间隔内安排SQL作业

在我的应用程序(ASP.NET,C#)中,我需要每天在一组预定义的时间间隔内运行存储过程.所以我创建了一个sql作业并安排了相同的工作.但问题是,可以选择使用应用程序创建/修改此时间间隔,这会将修改后的时间间隔存储在表中.所以我需要在用户配置的时间间隔内运行存储过程.

现在我正在执行以下步骤来解决此问题.

  1. 创建了一个执行存储过程的作业,并且每1分钟安排一次.
  2. 在存储过程中,我将检查当前时间(分钟)和预定间隔(s).
  3. 如果匹配则存储过程内的tsql代码部分将执行,否则跳过该过程.

这工作正常,但存储过程将每分钟执行一次(希望有人遇到同样的问题).

寻找更好的解决方案来解决这个问题.

t-sql sql-server jobs sql-server-2008 sql-job

6
推荐指数
1
解决办法
2466
查看次数

如何使sql作业步骤退出报告失败

我有一个SQL作业步骤

像这样

Declare 
@Result varchar(255)

exec myprocedure
@Result = @Result output
Run Code Online (Sandbox Code Playgroud)

我想做什么:
如果@Result ='错误'然后将作业标记为失败,我该如何实现?

t-sql sql-server-2005 sql-job

4
推荐指数
1
解决办法
9549
查看次数

对象'sysjobs',数据库'msdb',架构'dbo'上的SELECT权限被拒绝

我在尝试读取SQL作业时遇到以下错误.

对象'sysjobs',数据库'msdb',架构'dbo'上的SELECT权限被拒绝

我怎样才能解决这个问题?

permissions sql-server-agent sql-server-2005 sql-job

4
推荐指数
2
解决办法
3万
查看次数

如何将 SQL Server 作业名称传递给此作业中的存储过程?

我有工作:

运行程序

它有以下步骤:

第 1 步:做某事
第 2 步:做其他事
第 3 步:电子邮件

在第 3 步中,我有:

EXEC spSendSuccessEmail -- and here's where I want to pass the job name.
Run Code Online (Sandbox Code Playgroud)

下面是上面存储过程的代码:

ALTER PROCEDURE [dbo].[spSendSuccessEmail] @JobName VARCHAR(30)
AS 
BEGIN
    SET NOCOUNT ON;

    DECLARE @EmailBody VARCHAR(50)

    SET @EmailBody = @JobName + ' ran successfully'

    BEGIN TRY
        EXEC msdb.dbo.sp_send_dbmail 
            @profile_name = 'DBTeam',
            @recipients = 'user@universe.com',
            @copy_recipients = 'user2@universe.com',
            @subject = 'Process Complete',
            @body = @EmailBody,
            @importance = 'Normal',
            @sensitivity = 'Normal';
    END TRY
    BEGIN CATCH …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server token sql-job

2
推荐指数
1
解决办法
4174
查看次数

在SQL Server作业中两个存储过程逐个执行还是同时执行?

我想在SQL Server 2012中创建一个JOB,以执行两个相关的存储过程.

Exec my_First_Procedure
Exec my_Second_Procedure
Run Code Online (Sandbox Code Playgroud)

如果我像上面那样创建JOB,第二个在第一个完成后开始执行,或者两个查询同时执行?

帮我找到它.谢谢你的建议.

sql sql-server job-scheduling sql-job sql-agent-job

2
推荐指数
1
解决办法
3559
查看次数

oracle作业只能手动运行

PROCEDURE CRIAR_JOB_LIMPA_proc IS
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
    job_name        => 'JOB_LIMPA_TAB',
    job_type        => 'STORED_PROCEDURE',
    job_action      => 'SIIMA_JOB_LIMPA_TAB_pkg' || '.LIMPAR_TAB_proc',
    start_date      => To_Date('12-NOV-2018 11:20 AM', 'dd-mon-yyyy hh:mi AM' AT TIME ZONE 'GMT'),
    repeat_interval => 'FREQ=minutely;interval=3',
     comments             => 'Inserir em tabela backup e apagar na original',
    enabled         => TRUE);
END;
Run Code Online (Sandbox Code Playgroud)

我有这个工作,运行良好,当我手动执行它,但它从来没有开始,每当我设置的开始日期,我已经尝试设置时区和一切,但它似乎并没有帮助.

任何可能的问题/解决方案的想法?

谢谢

sql oracle plsql schedule sql-job

1
推荐指数
1
解决办法
246
查看次数