When I have a transaction with multiple queries, I am able to test which locks are held between queries by using waitfor and checking the dm_tran_locks.
But I cannot "pause" one query in half. Specifically, I am wondering how this query will hold locks:
update my_table set column1=new_value
where column2=filter_value
Will this take an update lock from the start? Or will it take a shared lock until it determines the rows which the where specifies, and then request a U lock?