I am not unable to understand the difference between Phantom and nonrepeatable reads which both of them are supported in isolation level 3. For me both are sounding similar in the sense once the first transaction has read pages, the second transaction modifies them before the first transaction reads them again.
And I am also aware that these reads can be avoided using HOLDLOCK qualifier.
Appreciate if some one could explain.