All expressions and functions are deterministic or nondeterministic:
Deterministic expressions and functions always return the same result, if they are evaluated with the same set of input values. This expression is deterministic:
c1 * c2
Nondeterministic expressions of functions may return different results each time they are evaluated, even when they are called with the same set of input values. The function getdate is nondeterministic because it always returns the current date.
An expression’s deterministic property defines a computed column or a function-based index key, and thus defines the computed column or function-based index key itself.
The deterministic property depends on whether the expression contains any nondeterministic elements, such as various system functions, user-defined functions, and global variables.
Whether a function is deterministic or nondeterministic depends on the function coding:
If the function calls nondeterministic functions, it may be nondeterministic itself.
If a function’s return value depends on factors other than input values, the function is probably nondeterministic.