一个存储过程中更新多个表可以用一个COMMIT吗 ?

我在一个过程中,对不同表进行INSERT或UPDATE可以只用一个BEGINTRAN与COMMITTRAN来提交吗?因为如一个一个的提交在其中一个表数据有问题时就会产生有... 我在一个过程中,对不同表进行INSERT 或 UPDATE 可以只用一个 BEGIN TRAN
与COMMIT TRAN 来提交吗?

因为 如一个一个的提交 在其中一个表数据有问题时 就会产生有的表更新了 有的没更新 ,数据就会 不完整!
展开
 我来答
百度网友66a8d48e5
2011-06-15 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3985万
展开全部
技术上是可以的,原则建议。

一般情况下事务有原子性,如果要一起执行的语句放在事务中提交,达到这些语句的“同步”,要不都不执行,要不都执行。显然,这里是可以放在一起的让其执行的。

但语句中很明显涉及了更新插入等相关操作,此进需要在事务上加排他锁,这样会导致数据库的并发性下降,所以对于事务我们一般会选用的是执行较快的几组语句入在一起的。一般事务较为短小,至少执行速 度会很快。

假定,我是说假定,如果 有一个事务需要执行的时间是一天,由于事务中有更新语句,所以事务加了排他锁,其他事务与程序只有等待。这样可想你的数据库不能再接受任何外部的调用了。也就是说如果你的程序执行过长,最好不要使用事务。

所以在事务语句中是不允许进行数据库的压缩,创建,等耗时较高的操作的,这是SQL中规定的!
Zy_try
2011-06-15 · TA获得超过291个赞
知道小有建树答主
回答量:848
采纳率:0%
帮助的人:199万
展开全部
不是可不可以的问题
就该这么做

为了保证数据完整性 这是唯一的办法
可能你会再多处回滚 应为就算你前台数据验证的再完善 在访问量大的情况下 免不了实时性的丢失
大型的业务 可能不仅在数据库做事务
有必要也要在程序中用企业级事务
如果你是个初学者 那咱鼓励一下下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式