【百分紧急求救】关于事物的几个疑惑点,希望各位老师帮助.
一,对于一个Connection来说如果这个连接只用了select进行查询的话,那么我们用不用事务的效果是不是一样的,因为select只是进行查询操作,还是有其他的说法.   
 二,对于一个连接Connection来说如果同时进行select和update或insert的操作(比如从表A查出来数据的某几个列update到表B),那么当我们用事务控制的时候是需要两个Connection一个进行select(事务可选),一个进行update(要用事务),还是我们只需要一个Connection来用事务并进行select和update操作?   
 三,有一个表有100万条数据,一个应用程序用事务处理,update这100万条数据的某个字段,(我想在快的数据库也需要10s左右吧?)这个时候这个线程是不是需要创建一个锁?那么这个锁是独占锁(肯定不是共享锁吧),这个锁同时是表级锁还是行级锁?      好的   ,回答完了上面的问题紧接来了,      另外一个用户也登陆   同样的操作,update这个儿100万条数据,那么此时会发生什么,这个线程是会等待前一个结束之后在进行操作,还是同时进行(这个好像不可能吧),还是直接报错,或者是等待一段时间后报错?   
 四,一般锁的这种概念和错误在什么时候容易出现?应该如何解决呢,   
 非常感谢,一个新手,如果大家不满意会在开新帖加分的,因为级别很低,只能先给100分了。
------解决方案--------------------HOHO! 
 不会 
 不过顶下
------解决方案--------------------2.对于第二个问题 
 我们只需要一个Connection来用事务并进行select和update操作
------解决方案--------------------事务控制的时候是需要两个Connection一个进行select(事务可选),一个进行update(要用事务)   
 事务只在一个Connection中,如果你断开连接前事务如果提交那么就自动回滚了 
 LZ应该是在一个Connection中开一个事务做select 和 update,在两个Connection中你的事务就是独立的没有联系的两个事务   
 update的时候如果where 条件是主键那么就是行锁,否则就是表锁,一个用户用事务update这个儿100万条数据,如果这时连接没有关或者提交,那么其他人是不能update的,只能等
------解决方案--------------------如果你表有主键,那么update时就是行锁 
 您可以通过EXEC sp_lock @@spid做个测试
------解决方案--------------------BEGIN TRAN   
 update...   
 EXEC sp_lock @@spid   
 ROLLBACK TRAN
------解决方案--------------------三,有一个表有100万条数据,一个应用程序用事务处理,update这100万条数据的某个字段,(我想在快的数据库也需要10s左右吧?)这个时候这个线程是不是需要创建一个锁?那么这个锁是独占锁(肯定不是共享锁吧),这个锁同时是表级锁还是行级锁?  好的 ,回答完了上面的问题紧接来了,  另外一个用户也登陆 同样的操作,update这个儿100万条数据,那么此时会发生什么,这个线程是会等待前一个结束之后在进行操作,还是同时进行(这个好像不可能吧),还是直接报错,或者是等待一段时间后报错?   
 数据库中有数据隔离等级,不同的等级会有不同的结果。 
 可能会加锁,或者没有锁,而其他用户可以读取脏数据。 
 如果有锁的话,是等待。。。。。。还是等待。。。。   ^,^   
------解决方案--------------------1、效果是一样的。 
 2、只需要一个connection 
 3、默认不报错,但如果操作同条数据,仅成功一次 
 4、并发操作执行时发生。
------解决方案--------------------upupupupupupupupupupupup 
 upupupupupupupupupupupup 
 upupupupupupupupupupupup 
 upupupupupupupupupupupup 
 upupupupupupupupupupupup