Entonces, ¿por qué podemos llamar a la función sin prefijo (esquema), creado bajo dbo?
Del libro de documentos en línea sobre UDF
Las funciones con valores escalares se pueden invocar donde se utilizan expresiones escalares. Esto incluye columnas calculadas y definiciones de restricciones CHECK. Las funciones con valores escalares también se pueden ejecutar utilizando la instrucción EXECUTE. Las funciones con valores escalares deben invocarse utilizando al menos el nombre de dos partes de la función .
Entonces, esto es básicamente una restricción establecida por el equipo de desarrollo de SQL Server y lo considero bastante correcto. Incluso si de alguna manera está permitido (solo por el bien de la conversación) todavía usaría el prefijo de esquema.
Siempre apoyo el uso del nombre de esquema, incluso si funcionaría sin agregarlo. Esta es la mejor práctica y todos los desarrolladores "buenos" la usan sin importar cuán redundante sea.
La otra razón por la que veo es que el motor de base de datos necesita algo para diferenciar entre funciones del sistema getdate ()
y funciones definidas por el usuario. Si se le permite llamar a la función sin nombre de esquema, ¿cómo diferenciaría el motor de la base de datos entre la función creada por el usuario llamada Getdate o la función GETDATE () del sistema?