Можно ли вызвать пользовательскую функцию без имени схемы?
Я использую MS SQL 2005, и когда я создаю функцию, мне нужно поместить имя схемы, чтобы вызвать ее:
select dbo.MyFunc
Все мои таблицы также находятся в схеме "dbo", и мне не нужно, чтобы имя схемы ссылалось на нее, поэтому я хотел бы знать, не хватает ли какой-либо конфигурации, которая могла бы сделать то же самое с функциями.
Ответы
Ответ 1
Короткий ответ, нет, это не так.
Вам следует рассмотреть префикс all ваших объектов базы данных с владельцем схемы, чтобы избежать того, чтобы сервер sql "искал".
Это делает ваши заявления более читабельными и дает небольшое увеличение производительности (хотя вы, вероятно, этого не заметите).
С уважением,
Ливны
Ответ 2
В отличие от всех других объектов базы данных (таблиц, представлений и хранимых процедур), функции, определенные пользователем, всегда должны иметь имя схемы, когда на них ссылаются. Это причуда SQL Server.
Ответ 3
* Скалярнозначные функции должны вызываться, используя хотя бы двухкомпонентное имя функции
http://msdn.microsoft.com/en-us/library/ms186755.aspx
+1 Родитель
Борик