数据库的事务问题 大家好,我想问一个问题,是关于sql server 事务的,事务有原子性,一致性、隔离性,持久性,但是我看并发的控制时,就有 一个这样的问题,当我用显示事务控制并发的时候,从begin tran 到end tran时,这是一个事务,但是为什么在begin 和end之间会有其他的事务进行呢,这个不是与事务的隔离性和我原子性有冲突吗?我有点不理解,请指教?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 每条dml语句都是一个默认事务,用set xact_abort on 可以让begin tran 到 commit tran中所有事务一起进行提交(回滚)也就是定义一个大事务 在并发的时候,为什么在begin 和end之间会有其他的事务进行呢,这个不是与事务的隔离性和原子性有冲突吗?难道是我理解的隔离和原子的概念有问题?呵呵 你结合1楼,2楼如果设置整个begin end 为大事务,这就是一个原子,一起提交事务。如果再设置事务隔离级别的话,就是要先执行第一个begin end 第二个等待第一个执行完了,才执行第二个 比如你设了set xact_abort on begin tran和commit tran里的内容就可以看作一个事务要不一起提交 要不一起回滚打个比方吧班级里有n多学生 出去跑步的时候,别人不是一个个的点名而是一起点名 某班全部到齐,某班全部不到齐等会再跑,你说你到了也没有,还得重跑 [color=#808080]没有冲突啊 俩人都可以打开来看,你提交保存了,我再保存肯定会覆盖你的。但是我俩同时保存的时候肯定会报错,所以我就要告诉对方,这个文章我在操作,你只能看[/color]但是我俩同时保存的时候肯定会报错,所以我就要告诉对方,这个文章我在操作,你只能看这个是用lock或者用隔离级别来实现的吗?事务本身能实现吗? 这个不用你管,我在看的时候就会给这个表加一个锁,别人看到这个锁,就不能更新,只能等我看完,我指的看完是select出结果为止、 大家看我的理解对不?事务:是在操作数据库的时候,是提交数据,还是回滚数据,只有这个功能,没有让别的用户等待的功能隔离级别:是数据库自动设置的,利用lock的功能,在insert update select delete情况下自动加适当的锁,不同的隔离级别,对insert update select delete加锁的情况不同lock:lock和隔离级别不同的是,我自己加lock 不用隔离级别来帮我控制,我自己加lock灵活我这样对三个概念理解的对吗? 事务,是为保证业务逻辑数据的一致性而存在的.例如A转账100元给B含2个动作,(A-100)和(B+100),这个2个动作必须一起完成(提交)或一起取消(回滚).隔离级别,是针对事务过程中锁定(Lock)范围的事先定义.SQL2000有4个事务隔离级别, 默认在第2级:Read Commited. 详情请参考教科书..锁定,为保证数据的一致性而存在的.例如某时刻连线1在读取数据A,此时连线1就持有对数据A的共享锁(S Lock),其他人可读取但不可修改. 我问题的答案找到了,大家看看这个,讲的非常好http://www.cnblogs.com/RicCC/archive/2010/03/05/transaction-lock-isolation-level.html 事务是具有原子性,一致性、隔离性,持久性。但是隔离型是相对来说的,不同的隔离级别,事务之间的隔离是不同,那我么我想问一下,我发的那个链接讲的,事务的隔离是用lock的机制实现的,只是不同的隔离级别保持锁的时间长短不一样,有的是比如select执行完,就释放锁,有的是保持本次事务执行完才释放,我认为这样解释合理,能说明问题,你有什么看法? 存储过程参数表名和字段,根据字段修改。 表中有字段但是查询找不着该字段 增删查改不一至类型的数据! 一个多表查询的问题!!!!!!!! SQL_2005_All简体中文开发版DVD 怎么装不上去啊 SQL中的排序问题(请教高手) 问个数据库内容比较的问题 如何将SQL SERVER数据库中日期默认格式中的年份设为4位数? oracle创建数据库又一的问题 sqlserver传参问题 字符串转成日期 sql 两个表查询问题,请教
也就是定义一个大事务
begin tran和commit tran里的内容就可以看作一个事务
要不一起提交 要不一起回滚
打个比方吧
班级里有n多学生 出去跑步的时候,别人不是一个个的点名而是一起点名 某班全部到齐,某班全部不到齐等会再跑,你说你到了也没有,还得重跑
你提交保存了,
我再保存肯定会覆盖你的。
但是我俩同时保存的时候肯定会报错,所以我就要告诉对方,这个文章我在操作,你只能看
[/color]但是我俩同时保存的时候肯定会报错,所以我就要告诉对方,这个文章我在操作,你只能看这个是用lock或者用隔离级别来实现的吗?事务本身能实现吗?
隔离级别:是数据库自动设置的,利用lock的功能,在insert update select delete情况下自动加适当的锁,不同的隔离级别,对insert update select delete加锁的情况不同lock:lock和隔离级别不同的是,我自己加lock 不用隔离级别来帮我控制,我自己加lock灵活我这样对三个概念理解的对吗?
例如A转账100元给B含2个动作,(A-100)和(B+100),这个2个动作必须一起完成(提交)或一起取消(回滚).隔离级别,是针对事务过程中锁定(Lock)范围的事先定义.SQL2000有4个事务隔离级别,
默认在第2级:Read Commited. 详情请参考教科书..锁定,为保证数据的一致性而存在的.
例如某时刻连线1在读取数据A,此时连线1就持有对数据A的共享锁(S Lock),其他人可读取但不可修改.
http://www.cnblogs.com/RicCC/archive/2010/03/05/transaction-lock-isolation-level.html