Immaginate l'esecuzione di una query utilizzando il codice simile a questo qui:Dopo una query Lettura non inviata, devo reimpostarla su Committed?
using (SqlConnection TheConnection = GetSqlConnectionNoCatch(SQLConnectionStr))
using (SqlDataAdapter TheDataAdapter = new SqlDataAdapter(SQLStatement, TheConnection) { MissingSchemaAction = SchemaAction })
{
DataSet TheDataSet = new DataSet();
TheDataAdapter.SelectCommand.CommandTimeout = SQLTimeout;
TheDataAdapter.Fill(TheDataSet, TableName);
return TheDataSet;
}
E immaginare di dover leggere una tabella di database che è assolutamente ottenere pestate, non-stop, con le scritture, che porta ad un sacco di situazioni di stallo e fallimenti quindi devi eseguire quella lettura utilizzando un livello di isolamento non inviato di lettura.
Se la mia domanda normale era:
SELECT Field1, Field2 FROM Table WHERE some_type_of_clause
vedo spesso che cambieresti a:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT Field1, Field2 FROM Table WHERE some_type_of_clause
OK, quindi ecco quello che mi ha portato a questa domanda, questo particolare link: http://blog.sqlauthority.com/2011/04/17/sql-server-applying-nolock-hint-at-query-level-nolock-for-whole-transaction/
il suo esempio ha la seguente:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT *
FROM AdventureWorks.Sales.SalesOrderDetail sod
INNER JOIN AdventureWorks.Sales.SalesOrderHeader soh ON
sod.SalesOrderID = soh.SalesOrderID
ORDER BY sod.ModifiedDate
-- Set isolation level to original isolation level
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
Devo reimpostarlo su READ COMMITTED anche alla fine della mia ricerca? O la mia lettura non è valida solo per quella domanda? O forse la vita della connessione (che esaminando il mio codice significherebbe non appena restituisco il DataSet, come la mia connessione si chiude proprio in quel momento)?
La maggior parte degli esempi sul Web non consente di tornare al livello di isolamento originale, quindi mi ha confuso che l'abbia incluso. Grazie!
Grazie mille per la risposta - segno di spunta verde e un upvote! – JustLooking