如何在sqlserver中根据条件删除表记录



我对SQL server有点怀疑。

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

database1具有表testtest1test2

database2具有表sasa1

database3有一些表,如empdeptloc

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

  1. 当前日期为Thursday,时间为6:40PM,则截断与database1相关的表数据
  2. 当前日期为Friday,时间为12:00AM,则截断与database2相关的表数据
  3. 当前日期为Saturday,时间为3:20AM,则截断与database3相关的表数据

我试过了:

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中实现此任务。

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

若您的服务器是Express版,并且并没有安装Agent,那个么您必须使用标准Window的调度程序来执行连接到数据库并执行适当语句的进程。

最新更新