Можно ли вызвать пользовательскую функцию без имени схемы? - PullRequest
17 голосов
/ 02 февраля 2009

Я использую MS SQL 2005, и когда я создаю функцию, мне нужно указать имя схемы для ее вызова:

select dbo.MyFunc

Все мои таблицы также находятся в схеме "dbo", и мне не нужно имя схемы для ссылки на него, поэтому я хотел бы знать, если мне не хватает какой-либо конфигурации, которая могла бы сделать то же самое для функций.

Ответы [ 3 ]

16 голосов
/ 02 февраля 2009

Короткий ответ, нет, это не так.

Вы должны рассмотреть префикс всех объектов вашей базы данных с владельцем схемы, чтобы избежать того, чтобы сервер sql "искал его".

Это делает ваши высказывания более читабельными и дает небольшое увеличение производительности (хотя вы, вероятно, этого не заметите).

С уважением, Ливны

8 голосов
/ 07 октября 2009

В отличие от всех других объектов базы данных (таблиц, представлений и хранимых процедур), для пользовательских функций всегда требуется имя схемы при обращении к ним. Это причуда SQL Server.

7 голосов
/ 27 мая 2010

* Скалярные функции должны вызываться с использованием хотя бы двухкомпонентного имени функции

http://msdn.microsoft.com/en-us/library/ms186755.aspx

+ 1 родитель

Борик

...