如何用触发器更新新插入记录的字段值

ycagri 2010-03-02 09:52:19
需要创建一个触发器来实现此功能

表结构、数据如下
ID STCD TM Data
1 ST01 2010-02-01 00:00:00.000 23.50
2 ST01 2010-02-01 04:00:00.000 34.50
3 ST01 2010-02-01 08:00:00.000 45.50
4 ST02 2010-02-01 00:00:00.000 21.50
5 ST02 2010-02-01 04:00:00.000 27.50
6 ST02 2010-02-01 08:00:00.000 32.50


我的数据默认情况下是递增的,如果插入的数据比我最大的数小,那么我用现在最大的数加上新增的这个数作为最终的数
例如插入
'ST01','2010-02-01 12:00:00',12
因为12比ST01最大的值45.50小,所以我要用45.50+12来更新现在的这个Data字段

触发器需要实现的功能为:
1、查询出inserted里面STCD中Max(Data)的值
2、用这个查询出的Max(Data)值跟 inserted中的Data比较
3、如果Data<Max(Data),那么就用Max(data)+inserted中的Data
4、更新此次inserted的数据

大体流程是这样的,帮忙写一下触发器
谢谢

如果不用触发器,还有没有其他的方法实现此需求
...全文
289 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycagri 2010-03-02
  • 打赏
  • 举报
回复
create trigger test on tb
for insert
as
begin
declare @max varchar(10)
select @max=max(data) from tb
declaer @temp varchar(10)
select @temp = data from inserted
if @max >@temp
update tb set date = @max+@temp
end

update tb set date = @max+@temp 这句是不是错误,是更新tb表了,还是inserted
rucypli 2010-03-02
  • 打赏
  • 举报
回复
create trigger test on tb
for insert
as
begin
declare @max varchar(10)
select @max=max(data) from tb
declaer @temp varchar(10)
select @temp = data from inserted
if @max >@temp
update tb set date = @max+@temp
end
ycagri 2010-03-02
  • 打赏
  • 举报
回复
是不是太晚了,都睡觉了
还是我的描述不清楚,咋就没有一个人回复了

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧