有两个数据库A,B。A.a表中有个opertime字段,记下每次操作的时间。
timer每分钟触发一次,检查A.a表中的记录更新时间,跟本地保存的上一次的更新时间进行比较,如果不相同,就把A.a表中所有更新的记录读出来,并对B.b表中相应的记录进行修改。
现在的问题是:A.a表中所有更新的记录放在一个DataSet中,我没办法从B.b表中一下子取到DataSet中对应的记录,可是我又不想一条记录一条记录地去更新B.b表,有好的办法吗?
timer每分钟触发一次,检查A.a表中的记录更新时间,跟本地保存的上一次的更新时间进行比较,如果不相同,就把A.a表中所有更新的记录读出来,并对B.b表中相应的记录进行修改。
现在的问题是:A.a表中所有更新的记录放在一个DataSet中,我没办法从B.b表中一下子取到DataSet中对应的记录,可是我又不想一条记录一条记录地去更新B.b表,有好的办法吗?
解决方案 »
- winfrom中treeview获取选中的节点的id
- 求个sql语句
- windows mobile来电
- 如何设置DataList中其中LinkButton的文字颜色
- (急)这个问题如何解决??
- DetailsView编辑多表内容问题
- 关于RichTextBox
- 有没有人配置成功AspNetForums1.0?我看没几个人会,它连Sql脚本都有错啊,能够配成功的我马上拜他为师
- 急问:如何象写xml文件一样的写这个xslt文件???
- 文件上传时,如何实现文件的选择?????
- 超简单的问题。。如何知道textbox.text得值是不是int32
- C#开发,如何在CAD2004的图纸里面找到一个指定块的X坐标跟Y坐标?
SELECT dbo.a2.id AS a2_ID, dbo.a2.a1ID AS a2_a1ID, dbo.a2.name AS a2_name,
dbo.a1.id AS id, dbo.a1.name AS name
FROM dbo.a2 INNER JOIN
dbo.a1 ON dbo.a2.a1ID = dbo.a1.id然后对这个试图:update view1 set [name]='sssss' where id=1
然后更新B表的时候,因为select * from B where ID = @ID,所以我只能对上面DataSet中的数据一条条地来更新B表中的数据,大家有没有什么好一点的办法,能从B表中一下子把DataSet中对应的记录取出来,这样我就可以批量更新了~~~
from B inner join A on A.ID=B.ID;建立这个dataSet;或是直接建立一个在数据库里建立一个这样的视图;
如果使用的是DataSet,你可以用循环取访问DataSet,将B中的Col 都等于A中Col。
如果使用视图;那就更简单了;
Update 视图名称 Set B.col1=A.col1 .....应该说这样虽然多了一次将别人A表复制到自己数据库中的步骤,但效率应该还是比一条条去更新B表要快。