在日期执行查询

时间:2014-05-26 01:01:52

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

一种方式或者说好的方法是制作一个Sql - 作业,其次是触发器。但触发器不合适,也不建议使用。

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

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

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

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

现在创建一个由作业执行的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