我有一个表 base,下面分别为表结构和数据
id name order date flag
1 aaa a122 2007-10-30 1
2 bbb a1223 2007-10-31 1
3 ccc 1224 2007-11-21 1
4 ddd a122 2007-12-21 0 如何让系统的时间到了每一条记录指定的时间,将“flag”自动设为“0”,意思就是说,例如:到了明天“2007-10-30 ”,则第一条记录的“flag”系统会自动设为“0” !!请各位大侠帮帮忙了!!
id name order date flag
1 aaa a122 2007-10-30 1
2 bbb a1223 2007-10-31 1
3 ccc 1224 2007-11-21 1
4 ddd a122 2007-12-21 0 如何让系统的时间到了每一条记录指定的时间,将“flag”自动设为“0”,意思就是说,例如:到了明天“2007-10-30 ”,则第一条记录的“flag”系统会自动设为“0” !!请各位大侠帮帮忙了!!
解决方案 »
- SQL2005查询过程
- 在安装sql server2000的服务器上,运行"服务器网络实用工具"与运行"客户端网络实用工具",二者有区别吗?(仅就一台服务器而言,不考虑客户机)
- 分组问题,困挠多时。
- 如果把表主键的数据写重复了怎么办?
- 我在两台机子上都装了sqlserver,请问我怎样用企业管理器像管理自己机子的数据库一样管理远程数据库
- 关于xml 类型数据中批量修改
- SQL语句问题(简单的)
- 在Sql Server中能否对一般文件进行操作?
- mysql中如何去除一张表中的重复纪录?
- sql 随机抽取记录,菜鸟分少,莫笑。
- 问题尚未解决,急,再开帖~~
- ★50元求购软件可以监测SQLServer2000中数据库表变化的情况
flag=0
where convert(varchar(10),date,120)=convert(varchar(10),getdate(),120)
或update t
flag=0
where datediff(day,getdate(),date)=0
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
update base set flag=0 where datediff(dd,date,getdate())=0 --确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排为一天一次
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
set flag=0
where datediff(day,getdate(),date)=0
……意思就是说,例如:到了明天“2007-10-30 ”,则第一条记录的“flag”系统会自动设为“0”……
---------------
这样的需求,建议使用计算列:简单、实时
*/create table Test
(
id int,
name varchar(10),
[order] varchar(10),
date datetime,
flag AS (case when date>=getdate() then 1 else 0 end)--计算列
)insert Test
select 1,'aaa','a122','2007-10-30' union all
select 2,'bbb','a1223','2007-10-31' union all
select 3,'ccc','1224','2007-11-21' union all
select 4,'ddd','a122','2007-12-2'--到期的记录,flag自然变成0:
select * from Test
/*
id name order date flag
----------- ---------- ---------- ------------------------------------------------------ -----------
1 aaa a122 2007-10-30 00:00:00.000 1
2 bbb a1223 2007-10-31 00:00:00.000 1
3 ccc 1224 2007-11-21 00:00:00.000 1
4 ddd a122 2007-12-02 00:00:00.000 1
*/--更新操作实时响应变化
update Test set date=0 where id=1
select * from Test -- 第一记录 flag=0
/*
id name order date flag
----------- ---------- ---------- ------------------------------------------------------ -----------
1 aaa a122 1900-01-01 00:00:00.000 0
2 bbb a1223 2007-10-31 00:00:00.000 1
3 ccc 1224 2007-11-21 00:00:00.000 1
4 ddd a122 2007-12-02 00:00:00.000 1
*/--删除对象
drop table Test