导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

怎么根据时间值来触发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"

以此类推....

...全文
131 点赞 收藏 15
写回复
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"
回复
到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
触发器怎么做啊?
触发条件怎么写,因为时间不是固定的
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告