一个触发器的问题,请大虾们帮忙
我想在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)
------解决方案--------------------字段名称无关!