我觉得不会出现这样的问题,处理这样的问题要用事务处理;
A表还没有提交,它不能可同步到B表的,所以连接到B表的也不能马上删除;它有先后过程之分,先提交完成,再能删除;
A表还没有提交,它不能可同步到B表的,所以连接到B表的也不能马上删除;它有先后过程之分,先提交完成,再能删除;
解决方案 »
- 你还在用GUID作数据库表的主键吗? 对于影响数据库性能的几个方案的实测对比
- 【100分】技术难点,多条件查询用不到独立索引吗?独立索引这么废吗??
- 数据库 插入信息
- MS SQL问题1:将Access的表导进SQL Server?
- 当对execl进行update更新时遇到有跨行跨列怎么处理
- MSSQL 2005 REPLICATION一问
- 这条语句运行后提示语法错误
- 急急急~~~~~~~~~~~~求助 在线等解决方案
- 高分求购一条SQL语句的写法
- visual C++下的oracle数据库问题????
- sql server 2000 向 sql 2008 发布订阅问题
- 关于最新发布信息的会员列表。
1. 开始事务
2. 向表A插入一条关联到GP00001的记录
3. 提交事务T2:
1. 开始事务
2. 从表B删除GP00001的记录
3. 提交事务在开始事务到提交事务之间的操作都是在session的缓存中执行的,
所以可以并发,即T1的1,2两步,和T2的1,2两步是并发的,
而提交事务的第3步,是将Session的数据真正反映到数据库,
为了保证数据完整性,MS SQL Server做了同步控制,即对于同一个
数据库的所有事务提交,都是被串行同步起来的(当然可能做优化,
但对使用者透明)。
TransactionA:
1. 开始事务
2. 处理table1
3. 处理table2
4. ....
5. 处理tableN
6. 提交事务 TransactionB:
1. 开始事务
2. 处理talbe1
3. 提交事务 假设TransactionA先于TransactionB启动了事务,并率先执行了第2步:"处理table1",
那么,下面那个推测是正确的:
1. TransactionB是否需要等到TransactionA执行完成才能执行第2步,
2. 不用担心TransactionA事务的影响,因为串行化是在事务提交的那一刹那才发生的,
这样TransactionA在执行过程当中,其他的小事务依旧能工作,但最后TransactionA
完成之后会得到一个类似这样的ERROR: Can't serialize access due to concurrent update,并且
rollback.
>>>都有可能,这个取决於当前事务的隔离层级,请参考books online中关於事务的隔离层级的说明。
1. 开始事务
2. 处理table1
3. 处理table2
6. 提交事务 TransactionB:
1. 开始事务
2. 处理table2
2. 处理talbe1
3. 提交事务