【问题标题】:I am trying to execute simple SQL code which executes after every 30 seconds我正在尝试执行每 30 秒执行一次的简单 SQL 代码
【发布时间】:2018-12-12 05:26:04
【问题描述】:
declare @timeToRun nvarchar(50);
declare @t1 int;

set @t1=10;
set @timeToRun = right(rtrim(CONVERT(VARCHAR(70), GETDATE(), 108)),2)

if @timeToRun = @t1 
begin
--   waitfor time @timeToRun
   begin
       print 'Hello';
   end
end

【问题讨论】:

    标签: sql sql-server-2008 sql-server-2012


    【解决方案1】:

    需要重复运行的 SQL Server 代码最好使用 SQL Server 代理作业来完成。 Here is the documentation to create a SQL Server Agent job。简而言之,在 SQL Server Management Studio 中执行此操作的过程是:

    1. 在对象资源管理器中,单击加号以展开要在其中创建 SQL Server 代理作业的服务器。

    2. 单击加号展开 SQL Server 代理。

    3. 右键单击 Jobs 文件夹并选择“New Job...”。

    4. 在“新建作业”对话框的“常规”页面上,修改作业的常规属性。

    5. 在“步骤”页面上,组织作业步骤。

    6. 在“计划”页面上,组织作业的计划。

    7. 在“警报”页面上,组织作业的警报。

    8. 在“通知”页面上,设置 Microsoft SQL Server 代理在作业完成时执行的操作。

    9. 在“目标”页面上,管理作业的目标服务器。

    10. 完成后,单击“确定”。

    【讨论】:

    • 在对象资源管理器中,找不到服务器代理,我尝试通过 sql server 配置和 services.msc 启动代理,但没有成功。在这两种方法中查找错误。
    • SQL Server 代理在 Express 版中不可用,也许这就是为什么?如果是这样,也许您可​​以改用 Windows 任务计划程序或编写 Windows 服务来按计划进行 SQL 查询。
    • 是的,我使用的是速成版,这就是我面临这个问题的原因。谢谢斯蒂芬詹宁斯。
    【解决方案2】:

    我发现代码可以正常工作,SQL SERVER EXPRESS EDITION 有问题,它不提供 SQL 代理,使用 SQL SERVER STANDARD EDITION 成功执行相同的查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多