Então, por que podemos chamar a função sem prefixo (esquema), criado no dbo?
Do documento online de livros sobre UDF
Funções com valor escalar podem ser chamadas onde expressões escalares são usadas. Isso inclui colunas computadas e definições de restrição CHECK. Funções com valor escalar também podem ser executadas usando a instrução EXECUTE. Funções com valor escalar devem ser chamadas usando pelo menos o nome de duas partes da função .
Portanto, essa é basicamente uma restrição definida pela equipe de desenvolvimento do SQL Server e considero bastante correta. Mesmo que de alguma forma seja permitido (apenas por uma questão de conversa) eu ainda usaria o prefixo Schema.
Eu sempre apoio o uso do nome do esquema, mesmo que funcionasse sem adicioná-lo. Essa é uma prática recomendada e todos os desenvolvedores "Boas" a usam, independentemente de sua redundância.
A outra razão que vejo é que o mecanismo de banco de dados precisa de algo para diferenciar entre funções do sistema getdate ()
e funções definidas pelo usuário. Se você puder chamar a função sem o nome do esquema, como o mecanismo de banco de dados diferenciaria entre a função criada pelo usuário denominada Getdate ou a função GETDATE () do sistema.