Domanda

Stiamo eseguendo le seguenti query usando SQL dinamico, che sta errondo per pochi casi quando eseguiamo istanze simultanee. L'errore è:

Non è stato possibile continuare a scansionare con NOLock a causa del movimento dei dati ...

Questa domanda Dice che questo errore viene lanciato quando un processo legge i dati che vengono eliminati da un altro processo. Il nostro processo sta eliminando e leggendo le stesse righe, tuttavia una dopo l'altra secondo la seguente query (il SELECT è dopo il DELETE):

DELETE FROM Table1
WHERE colum1 = somevalue1
AND column2 = somevalue2

SELECT COUNT(*) 
FROM Table1 WITH (NOLOCK)
WHERE colum1 = somevalue1
AND column2 = somevalue2

Sto cercando di capire l'esecuzione della query sopra. Come la SELECT non è impegnato, inizia a eseguire prima del DELETE è impegnata? Questo significherebbe che rimuovere il NOLOCK Il suggerimento fermerebbe l'errore?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top