Check out the FAQ! This means it is possible for a read uncommitted transaction to cause blocking when querying a table when a concurrent transaction is modifying the metadata of that table. The database doesn't have to be in single-user mode. A user-defined function can return data that was committed after the time the statement containing the UDF began. It is common for applications to use a "select a row, then update the row" pattern, where the read and write are explicitly separated within the transaction.
nest...