See MSDN article.

Deterministic functions always return the same result any time they are called with a specific set of input values and given the same state of the database.

Nondeterministic functions may return different result every time they are called with a specific set of input values, even when the database state does not change.

A UDF(user-defined function) must have specific properties to allow the database engine to index the result of the function:

  • Determinism
  • Precision
Advertisements