SQL Server 7.0 uses dynamic locking. Thus the Query Optimizer determines
the best locking level based on the query involved. You can tell the
Optimizer what type of locking you want for an individual query by using
optimizer hints via the "with" option.
update MyTable with (rowlock)
set MyCol1 = MyCol1 * 2
would cause row-level locking on the update. If a large number of records
are involved, the Query Optimizer might chose page level or table level
locking unless you specify exactly what you want. Be warned though that
specifying a specific locking level (like the example above) might result in
a LOT of locking overhead for a query.
Look up "locking hints" in Books On-Line.