Yeah, I also learnt about that hint recently. I knew about SET LOCK_TIMEOUT, but this is a reduction of that hint to a single table. And with the fixed timeout value of 0.
I would say all uses of this hint are on the advanced side. A possible scenario is this: say that you find that there is a deadlock that appears often, and one of the processes needs to be fast, but the other is more of a background process and can be held back. You can add SET DEADLOCK_PRIORITY LOW to the background processes, but there are two issues with this:
- It may take five seconds until SQL Server unrolls the deadlock, and that can be a long time for the important process.
- You don't want the background process to fail entirely.
Instead you add the NOWAIT hint (or use SET LOCK_TIMEOUT) in the slow process. You have TRY-CATCH around the operation and on error 1222 (lock timeout), you use the WAITFOR statement to wait for some time, maybe 100 ms, maybe a second and retry.
This is certainly not something you do every day.