According to the remarks section of http://msdn.microsoft.com/en-nz/library/ms173763.aspx :
Only one of the isolation level options can be set at a time, and it remains set for that connection until it is explicitly changed.
and according to http://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx
To minimize the cost of opening connections, ADO.NET uses an optimization technique called connection pooling.
Does this mean that if the ISOLATION LEVEL
is changed in a stored procedure it carries over to other the next use of a connection? E.g.
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?
EDIT: Is there a simple way to check the isolation level used in a query?