O artigo online do MSDN " Isolamento de instantâneo no SQL Server " declara:
- "Um nível de isolamento tem escopo em toda a conexão e, uma vez definido para uma conexão com a instrução SET TRANSACTION ISOLATION LEVEL, permanece em vigor até que a conexão seja fechada ou outro nível de isolamento seja definido. Quando uma conexão é fechada e retornada ao pool , o nível de isolamento da última instrução SET TRANSACTION ISOLATION LEVEL é mantido . As conexões subsequentes que reutilizam uma conexão em pool usam o nível de isolamento em vigor no momento em que a conexão é pool "
Não é um parágrafo auto-contraditório ("até" vs. "retido")?
Em seguida, se "o nível de isolamento da última instrução SET TRANSACTION ISOLATION LEVEL for mantido " após fechar a conexão e retorná-la a um pool, como deve ser entendido:
- que o nível de isolamento padrão terá valor arbitrário (conexões diferentes no pool terão níveis de isolamento diferentes e seu valor dependerá da reabertura da conexão)?
- ou todos os valores padrão em todas as conexões no pool serão alterados para o último? mas novamente completamente desconhecido antes da mão?