我对SQL server有点怀疑。
我有3个数据库,每个数据库都有一些表:
database1
具有表test
、test1
、test2
。
database2
具有表sa
、sa1
。
database3
有一些表,如emp
、dept
、loc
。
基于这些数据库,我想要根据条件截断表数据:
- 当前日期为
Thursday
,时间为6:40PM
,则截断与database1
相关的表数据 - 当前日期为
Friday
,时间为12:00AM
,则截断与database2
相关的表数据 - 当前日期为
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的调度程序来执行连接到数据库并执行适当语句的进程。