Not quite true. With a SELECT, you can downgrade from the default READ lock to ACCESS, or you can upgrade to WRITE or EXCLUSIVE. For INSERT/UPDATE/DELETE you can upgrade from the default WRITE to EXCLUSIVE. You can also upgrade anything that would normally use ROW (RowHash) locking to a full TABLE lock. It is also possible to explicitly apply table level locks to tables that are not otherwise referenced by the DML statement.
Once applied, locks are held until the end of the transaction (implicit auto-commit, COMMIT / ET, or ROLLBACK / ABORT).
↧