怎么根据时间值来触发sql?

fisher2008 2008-01-15 10:54:14
表里先插入一行,
如A表
id flag postdate

insert 值 1 ,'A', '2008-8-8'
insert 值 2 ,'A', '2008-3-1'
。。。。还有很多值

sqlserver要自动在第一条记录 '2008-8-8' ,把 flag设为"B"

sqlserver要自动在第二条记录 '2008-3-1' ,把 flag设为"C"

以此类推....

...全文
153 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouchunyu 2008-01-15
  • 打赏
  • 举报
回复
可以创建触发器来实现
-狙击手- 2008-01-15
  • 打赏
  • 举报
回复
fisher2008
fisher
等 级:
发表于:2008-01-15 11:10:469楼 得分:0


id flag postdate
1 'A', '2008-8-8'
2 'A', '2008-3-1'
3 'A', '2008-3-2'
4 'A', '2008-3-3'
5 'A', '2008-3-4'
6 'A', '2008-3-5'


比如
在2008-8-8号,drop datatable,
在2008-3-1号,把第2条记录flag设为"action"
在2008-3-2号,把第3条记录flag设为"action1"
在2008-3-3号,把第4条记录flag设为"action3"
在2008-3-4号,把第5条记录flag设为"action4"
在2008-3-4号,把第6条记录flag设为"good555"
在2008-3-5号,把第7条记录flag设为"dear656wefwefewfwefwef"

------

看不懂
fisher2008 2008-01-15
  • 打赏
  • 举报
回复
我的需求其实就是到了postdate这一天,把相应的记录flag设为D
fisher2008 2008-01-15
  • 打赏
  • 举报
回复
id flag postdate
1 'A', '2008-8-8'
2 'A', '2008-3-1'
3 'A', '2008-3-2'
4 'A', '2008-3-3'
5 'A', '2008-3-4'
6 'A', '2008-3-5'
并且这个表是动态增加的,可能有几万个数据
fisher2008 2008-01-15
  • 打赏
  • 举报
回复


id flag postdate
1 'A', '2008-8-8'
2 'A', '2008-3-1'
3 'A', '2008-3-2'
4 'A', '2008-3-3'
5 'A', '2008-3-4'
6 'A', '2008-3-5'


比如
在2008-8-8号,drop datatable,
在2008-3-1号,把第2条记录flag设为"action"
在2008-3-2号,把第3条记录flag设为"action1"
在2008-3-3号,把第4条记录flag设为"action3"
在2008-3-4号,把第5条记录flag设为"action4"
在2008-3-4号,把第6条记录flag设为"good555"
在2008-3-5号,把第7条记录flag设为"dear656wefwefewfwefwef"
昵称被占用了 2008-01-15
  • 打赏
  • 举报
回复
到Z以后怎么办?如果保证一位:


create trigger t_tab on a
FOR insert
as
begin
Update a set flag=isnull(char(ascii((select max(Flag) from a where Id<i.Id))+1),'A')
from inserted i,a
where i.id=a.id
end

kk19840210 2008-01-15
  • 打赏
  • 举报
回复
如何让服务器走到postdate这一天,只动执行一系列的sql


要实现这样的功能 要用到 作业 (job)
fisher2008 2008-01-15
  • 打赏
  • 举报
回复
B 和 C 没有规律,

id flag postdate
1 'A', '2008-8-8'
2 'A', '2008-3-1'

就是如何让服务器走到postdate这一天,只动执行一系列的sql
kk19840210 2008-01-15
  • 打赏
  • 举报
回复
在触发器里用 CASE 判断 要插入的值
根据具体情况修改
kk19840210 2008-01-15
  • 打赏
  • 举报
回复
建个 触发器

create trigger t_tab on a
INSTEAD OF insert
as
begin
insert into a select id,flag=case postdate when '2008-8-8' then 'B' when '2008-3-1' then 'A' END,postdate from inserted
end
pt1314917 2008-01-15
  • 打赏
  • 举报
回复
sqlserver要自动在第一条记录 '2008-8-8' ,把 flag设为"B"

sqlserver要自动在第二条记录 '2008-3-1' ,把 flag设为"C"

以此类推....
---------------------------------
将第一条的flag置为'B',第二条置为C
那最后到Z后面的如何处理呢?
重新循环设置?
wzy_love_sly 2008-01-15
  • 打赏
  • 举报
回复
什么规律?
free1879 2008-01-15
  • 打赏
  • 举报
回复
没看懂
wzy_love_sly 2008-01-15
  • 打赏
  • 举报
回复
Haiwer的就是触发器,你可以测试下效果
fisher2008 2008-01-15
  • 打赏
  • 举报
回复
触发器怎么做啊?
触发条件怎么写,因为时间不是固定的

34,837

社区成员

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

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