日期:2014-05-18  浏览次数:20492 次

一个触发器的问题,请大虾们帮忙
我想在SQL   server增加一个触发器具体功能如下:

数据表:

1   小张   小王   50   100   2007-1-1   12:00:09.578  
1   小李   小红   50   100   2007-1-1   11:58:16.678  
1   小宫   小涛   50   100   2007-1-1   12:58:06.121  
1   小张   小王   50   100   2007-1-1   12:57:05.458  
。。。。

现在的问题是当我新增加一条记录时
1   小张   小王   50   100   2007-1-1   12:03:34.001  
如何设置一个触发器根据时间判断删除小于当前时间即( <12:03:34.001   ),同时字段为小张和小红的旧记录呢,谢谢



------解决方案--------------------

create table T(col1 int, col2 varchar(10), col3 varchar(10), col4 int, col5 int, col6 datetime)
insert T select 1, '小张 ', '小王 ', 50, 100, '2007-1-1 12:00:09.578 '
union all select 1, '小李 ', '小红 ', 50, 100, '2007-1-1 11:58:16.678 '
union all select 1, '小宫 ', '小涛 ', 50, 100, '2007-1-1 12:58:06.121 '
union all select 1, '小张 ', '小王 ', 50, 100, '2007-1-1 12:57:05.458 '

create trigger tr on T
for insert
as
delete T
from inserted as tmp
where T.col2=tmp.col2 and T.col3=tmp.col3 and T.col6 <tmp.col6

insert T select 1, '小张 ', '小王 ', 50, 100, '2007-1-1 12:03:34.001 '

select * from T

--result
col1 col2 col3 col4 col5 col6
----------- ---------- ---------- ----------- ----------- ------------------------------------------------------
1 小李 小红 50 100 2007-01-01 11:58:16.677
1 小宫 小涛 50 100 2007-01-01 12:58:06.120
1 小张 小王 50 100 2007-01-01 12:57:05.457
1 小张 小王 50 100 2007-01-01 12:03:34.000

(4 row(s) affected)

------解决方案--------------------
字段名称无关!