根据 http://msdn.microsoft.com/en-nz/library/ms173763.aspx 中的注释部分:只能设置其中一个隔离级别选项,并且它会一直保持该连接的设置,直到显式更改。另外,根据http://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx,为了最小化打开连接的成本,ADO.NET 使用一种称为“连接池”的优化技术。这是否意味着如果在存储过程中更改了ISOLATION LEVEL,它会传递到下一个连接的使用?例如:
编辑:有没有简单的方法来检查查询中使用的隔离级别?
var con1 = new SqlConnection("<THE CONNECTION STRING>");
// ...call stored procedure altering isolation level with:
// SET TRANSACTION ISOLATION LEVEL SNAPSHOT
con1.Close();
var con2 = new SqlConnection("<THE CONNECTION STRING>");
// ... will this connection potentially have the altered isolation level?
编辑:有没有简单的方法来检查查询中使用的隔离级别?