Foxtable(狐表)用户栏目专家坐堂 → 新增多行保存和新增一行就保存时后台sql执行的区别?


  共有3615人关注过本帖树形打印复制链接

主题:新增多行保存和新增一行就保存时后台sql执行的区别?

帅哥哟,离线,有人找我吗?
HappyFt
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1905 积分:16933 威望:0 精华:0 注册:2014/7/29 19:09:00
新增多行保存和新增一行就保存时后台sql执行的区别?  发帖心情 Post By:2015/1/5 22:57:00 [只看该作者]

在写代码时经常会遇到下面的情况

 

'遍历新增完成一次性保存

For Each dr As DataRow In DataTables("订单").DataRows

     dim dr1 as datarow = tables("生产单").AddNew()

     dr1("")  = dr("")
      ....

Next

DataTables("生产单").Save

 

这种情况相当于后台sql数据库中一次insert就插入多行,即后台只执行一次insert操作

 

'遍历一行就保存

For Each dr As DataRow In DataTables("订单").DataRows

     dim dr1 as datarow = tables("生产单").AddNew()

     dr1("")  = dr("")

     DataTables("生产单").Save

Next

这种情况相当于保存时后台sql数据库中每行都要执行一次insert

 

因为我用触发器关系到其按语句触发影响多行或一行的问题,特求证我的这种理解是否正确?

 

谢谢!

 

 



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/5 22:59:00 [只看该作者]

 往数据库插入数据,一行,就是一个insert的,所以它们没有区别。

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1905 积分:16933 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2015/1/5 23:19:00 [只看该作者]

那不管遍历完再保存还是每遍历一行就保存都是每行插入时都会执行触发器中的代码了?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/5 23:46:00 [只看该作者]

 是的。

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1905 积分:16933 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2015/1/5 23:53:00 [只看该作者]

 

因为触发器中有介绍这样的语句只触发一次,所在才有此疑问


图片点击可在新窗口打开查看此主题相关图片如下:360截图20150105235331030.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/6 8:05:00 [只看该作者]

不管你保存一行还是 多行,都会触发,保存多行触发多次.

 回到顶部