一.表
if exists (select * from sysobjects where id = OBJECT_ID('[任务列表]') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
DROP TABLE [任务列表]CREATE TABLE [任务列表s] (
[id] [int] IDENTITY (1, 1) NOT NULL,
[任务内容] [ntext] NULL DEFAULT (''),
[状态] [int] NULL DEFAULT (''),
[到期日期] [smalldatetime] NULL DEFAULT (''),
[重复提醒] [int] NULL DEFAULT (0))
------------------------------------------------------------------------------------------
1.单表操作
2.有一表字段:重复提醒(0.重复提醒 1.只提醒一次 2.不提醒)二.实现功能
根据时间查询过期的信息,然后在表中插入过期的信息(同一表中插入,状态改变,其它不变)
要求:
写一插入语句
当表字段:[重复提醒]值为1时,只插入一条同样信息.
为0时能继续插入(表示可以重复插入)注:这条语句每天都会执行一遍以查看是否有过期的信息
if exists (select * from sysobjects where id = OBJECT_ID('[任务列表]') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
DROP TABLE [任务列表]CREATE TABLE [任务列表s] (
[id] [int] IDENTITY (1, 1) NOT NULL,
[任务内容] [ntext] NULL DEFAULT (''),
[状态] [int] NULL DEFAULT (''),
[到期日期] [smalldatetime] NULL DEFAULT (''),
[重复提醒] [int] NULL DEFAULT (0))
------------------------------------------------------------------------------------------
1.单表操作
2.有一表字段:重复提醒(0.重复提醒 1.只提醒一次 2.不提醒)二.实现功能
根据时间查询过期的信息,然后在表中插入过期的信息(同一表中插入,状态改变,其它不变)
要求:
写一插入语句
当表字段:[重复提醒]值为1时,只插入一条同样信息.
为0时能继续插入(表示可以重复插入)注:这条语句每天都会执行一遍以查看是否有过期的信息
当表字段:[重复提醒]值为1时,只插入一条同样信息. --何为同样的信息
为0时能继续插入(表示可以重复插入) --继续插入哪了些信息
TRYINSERT ITNO 任务列表A
select *FROM 任务列表A WHERE 到期日期='2010-09-11' and 重复提醒=1
INSERT ITNO 任务列表A
select *FROM 任务列表A WHERE datediff(day,到期日期,getdate())>=0
select 任务内容,状态,到期日期,2 as 重复提醒 from 任务列表 where count=2 and 到期日期>getdate()--只提醒一次
union
select 任务内容,状态,到期日期,重复提醒 from 任务列表 where count=5 and 到期日期>getdate()--反复提醒
不知道你的数据库是什么。创建个作业每天执行一次就可以了。
那就判断下
--插入一次就判断数据表中是否有以前是否有插入过
INSERT ITNO 任务列表A
select *FROM 任务列表A WHERE 到期日期='2010-09-11' and 重复提醒=1 and
not exists(select .....)
当【重复提醒】为1时只插入一条。。也就说整张表有两条一样的信息
当【重复提醒】为0时每天插入一条。。也就说整张表中同一条信息过期多少天就有多少条重复的数据
当【重复提醒】为2时不插。。整张表这条记录唯一
不知道楼主的意思我领悟了没
INSERT ITNO 任务列表A SELECT *FROM 任务列表A WHERE (DATEDIFF(DAY,到期日期,GETDATE())=1 and 重复提醒=1)
INSERT ITNO 任务列表A SELECT *FROM 任务列表A WHERE (DATEDIFF(DAY,到期日期,GETDATE())>1 and 重复提醒=0)我正在使用《Csdn收音机》第一时间获取最新动态!
--功能:每八个小时遍历一次数据,查询出过期2天的信息[重复提醒为0的要重复提醒,为1的只提醒一次]
--1.查询出操作员、状态、时间和重复提醒不为2(没提醒过)的复制一条,复制时任务类型变成6(表提醒)
insert into 任务列表(操作员id,任务类型,状态,任务主题,到期日期,下达人,重复提醒,资料ID)
select 操作员id,6 as 任务类型,0 状态,'过期提醒:'+任务主题 as 任务主题,到期日期,下达人,2 as 重复提醒,资料ID from 任务列表 where DATEDIFF(day, 到期日期, getdate())>=2 and 状态=0 and 任务类型=1 and 重复提醒<>2 --2.在复制后,把只提醒一次的重复提醒值变成2(重复提醒0值不变),表示只提醒一次的已经提醒过
update 任务列表 set 重复提醒=2 where 状态=0 and DATEDIFF(day, 到期日期, getdate())>=2 and 重复提醒=1