【问题标题】:Execute query on date执行日期查询
【发布时间】:2014-05-26 01:01:52
【问题描述】:

我有一个带有日期字段的表,我想在该日期到达当前日期时执行某个查询。有没有办法在 Sql Server 上做到这一点?

【问题讨论】:

  • 插入后和更新后触发。
  • 触发器可能不是正确的做法。当一个日期被命中时,你到底想让它做什么?
  • 您可以使用在 SQL Server 代理中运行的作业来执行此操作,该代理是 SQL Server 的作业调度软件。这是文档:msdn.microsoft.com/en-us/library/ms189237(v=sql.110).aspx.

标签: sql sql-server tsql sql-server-2005


【解决方案1】:

一种方法或说好的方法是制作一个 Sql - 工作,第二个是触发器。但是触发器不适合也不建议使用。

Sqljob 是自动化的过程,只要给出日期时间,它就会自动执行。在那里你调用 sp,首先检查日期,然后根据需要进行处理。

首先创建工作,请查看链接

http://www.databasedesign-resource.com/sql-server-jobs.html

http://forums.asp.net/p/1364020/2826971.aspx

现在创建一个由 job 执行的 sp(这是示例)..

create procedure spname()
as
begin
    declare @currentdate datetime = getdate()
    declare @tempdateToCheck datetime = (select datecolumn from tablename where ....give condition if any )

    if(@tempdateToCheck >= @currentdate)
    begin
        --execute statement you want like
        insert tablename .... --insert statement
        update tablename.... --update statement

        declare @tempvariable1 int --anydatatype you define and any no. of variable, you want.

        select @tempvariable1 = columnname from tablename 

        update tablename1 set columname = @tempvariable1 where condition 

    end
end

【讨论】:

  • 感谢您快速详细的回复
【解决方案2】:

您可以创建一个 sql server 代理作业,以便每天检查日期列,如果达到则执行查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-11
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    相关资源
    最近更新 更多