也许你可以在往表b插数据的同时,向另外1个表C插数据,并保证表C的数据是最新的、针对每个clientid是唯一的,然后直接用表C更新表a就可以了。
如果把表C放在另外的磁盘上,这样的速度会更块。
如果把表C放在另外的磁盘上,这样的速度会更块。
解决方案 »
- 【求助】c# 获取本机ip 时出错
- vs2005使用皮肤控件,代码怎么写
- 问一个数据库的问题,不难...但是我不知道...
- 怎样利用VS2005开发word的工具条?
- 【【非典型问题:byte和string之间相互转换】】
- dotNet 桌面程序改造计划.下拉框篇.DataGrid下拉窗口[过年了在放200分]
- 高手帮帮忙,实在没有分了。一个问题都把按的资本全部耗净了
- 关于数据库的问题
- 如何写程序的主入口!
- WPF 控件的xaml中的定义ControlTemplate内容,在该控件,Remove与Add之后,该控件的ControlTemplate重置的问题
- 很多Form在载入的时候,实现的淡入淡出是怎么作的?
- 做了将近一年的项目,可不可以申请失败??!!! :'(
我要得到b表中的最晚时间并与当前时间作比较,然后根据比较的结果更新a表。
select top 1 * from 表b order by 日期 desc
if(表b.maintaindate != null)
for(i=0;i<记录总数,i++)
b.maintaindate = 最晚时间
比较:if (b.maintaindate >= datatime.now)
update 表a.col = 1;
else (b.maintaindate < datatime.now)
update 表a.col = 0;
else(表b.maintaindate == null)
date = b.singdate + time(某种方法处理,让这两个能够相加)
for(记录中循环)
date = 最晚时间
重复比较和更新。现在,清除了吧。
(你用的是什么数据库啊,我用SQL Server的存储过程哈,你上面是什么数据库的语法?)If Exists(select * from b.maintaindate > GetDate() where clientid = 188 )
update 表a.col = 1 where id=188
ElseIf Exists(select * from b.maintaindate is not Null )
update 表a.col = 0 where id=188
Else
Begin
date = b.singdate + time(某种方法处理,让这两个能够相加) --某种方法处理,你自
--己想了哈
-- 这里要好好处理了,你要得到 date的值,可能这里比较麻烦吧
If date > GetDate()
update 表a.col = 1 where id=188
Else
update 表a.col = 0 where id=188
End