Тоді чому ми можемо викликати функцію без префікса (схеми), створеного під dbo?
З Інтернет-документа Книги про АДС
Функції, що оцінюються за шкалою, можна викликати там, де використовуються скалярні вирази. Сюди входять обчислені стовпчики та визначення обмежень CHECK. Функції, що оцінюються за шкалою, можна також виконувати за допомогою оператора EXECUTE. Функції, що мають значення в масштабі, потрібно викликати, використовуючи принаймні двоскладове ім'я функції .
Таким чином, це в основному обмеження, встановлене командою з розробки SQL Server, і я вважаю це цілком правильним. Навіть якщо це якимось чином дозволено (лише заради розмови), я все одно використовував би префікс схеми.
Я завжди підтримую використання імені схеми, навіть якщо воно буде працювати без його додавання. Це найкраща практика, і всі розробники "Хороших" використовують її незалежно від того, наскільки вона зайва.
Інша причина, яку я бачу, полягає в тому, що двигуну Бази даних потрібно щось розмежувати між функціями системи, як getdate ()
і визначеними користувачем функціями. Якщо вам дозволяється викликати функцію без назви схеми, як би механізм бази даних розмежував функцію, створену користувачем, на ім'я Getdate, або систему GETDATE ().