UDFは非常に便利で、いつも使用しています。
SQL Server 2005(または私が知る限りSQL Server 2008)に同等のsys.functionsを含めないことについて、Microsoftの論理的根拠はわかりませんが、自分で作成するのは簡単です:
CREATE VIEW my_sys_functions_equivalent
AS
SELECT *
FROM sys.objects
WHERE type IN ('FN', 'IF', 'TF') -- scalar, inline table-valued, table-valued