• Data modification statements typically request both shared locks and exclusive locks !!

    from MSDN

    When lock escalation occurs, the lock selected for the heap or index is strong enough to meet the requirements of the most restrictive lower level lock.

    Not at the same time and what about the issuing of IXWhen lock escalation occurs, the lock selected for the heap or index is strong enough to meet the requirements of the most restrictive lower level lock.

    For example, assume a session:

    Begins a transaction.

    Updates a table containing a clustered index.

    Issues a SELECT statement that references the same table.

    The UPDATE statement acquires these locks:

    Exclusive (X) locks on the updated data rows.

    Intent exclusive (IX) locks on the clustered index pages containing those rows.

    An IX lock on the clustered index and another on the table.

    The SELECT statement acquires these locks:

    Shared (S) locks on all data rows it reads, unless the row is already protected by an X lock from the UPDATE statement.

    Intent Share locks on all clustered index pages containing those rows, unless the page is already protected by an IX lock.

    No lock on the clustered index or table because they are already protected by IX locks.

    There are more answers than those provided.

    CodeOn

    😛