如何根据sql server中的条件删除表记录

时间:2015-02-12 12:44:15

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

我对SQL服务器有点疑问。

我有3个数据库,每个数据库都有一些表:

database1有表testtest1test2

database2有表sasa1

database3有一些表格,例如empdeptloc

基于这些数据库,我想根据条件截断表数据:

  1. 当前日期为Thursday,时间为6:40PM,然后截断database1相关表格数据
  2. 当前日期为Friday,时间为12:00AM,然后截断database2相关表格数据。
  3. 当前日期为Saturday,时间为3:20AM,然后截断database3相关表格数据。
  4. 我试过了:

    select  
       case when datename(dw,getdate())='Thrusday' and   RIGHT(CONVERT(varchar,getdate() ,100), 6) AS [Time]='6:40PM'
       then 
           truncate table database1.dbo.test
    end
    

    但是,它没有给出正确的结果。

    请告诉我如何在SQL server中完成此任务。

1 个答案:

答案 0 :(得分:0)

我认为您必须创建多个SQL Agent作业才能实现目标。 例如,创建每周四下午6:40开始的工作。在作业中,您可以添加SQL步骤,截断\删除相应的数据。

如果您的服务器是Express Edition并且未安装Agent,则必须使用标准Window的调度程序来执行连接到数据库并执行适当语句的进程。

相关问题