Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Кошерно ли UDF именовать как встроенную?  [new]
PaulYoung
Member

Откуда: Москва
Сообщений: 2551
Приветствую уважаемое сообщество!

Собственно, сабж: есть необходимость заменить вызов встроенной
GETDATE()
на вызов своей функции (производит некоторые вычисления над датой), т.е. создать свою, например, с тем же именем и вызвать её как
SELECT dbo.GETDATE()
а можно функцию назвать по-своему, например
SYS_GETDATE()
и вызвать как
SELECT dbo.SYS_GETDATE()

Глобально заменить в коде серверной части приложения одинаково придётся что первый вариант, что второй.
Но лично я склоняюсь к названию из второго варианта, на мой взгляд визуально в коде будет меньше путаницы, сразу видно кто есть ху.

А как думаете вы? Что лучше, какие плюсы и минусы?
23 окт 17, 11:27    [20891468]     Ответить | Цитировать Сообщить модератору
 Re: Кошерно ли UDF именовать как встроенную?  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
При создании функции не забывайте SCHEMABINDING, чтобы оптимизатору подсказать что она детерминированная и не нужно ее вызывать для каждой строки:

CREATE FUNCTION dbo.GetPI ()
RETURNS FLOAT
WITH SCHEMABINDING
AS BEGIN
    RETURN PI()
END
23 окт 17, 11:42    [20891554]     Ответить | Цитировать Сообщить модератору
 Re: Кошерно ли UDF именовать как встроенную?  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
AlanDenton
При создании функции не забывайте SCHEMABINDING, чтобы оптимизатору подсказать что она детерминированная и не нужно ее вызывать для каждой строки:

CREATE FUNCTION dbo.GetPI ()
RETURNS FLOAT
WITH SCHEMABINDING
AS BEGIN
    RETURN PI()
END
Если он собирается обращаться к GETDATE() или CURRENT_TIMESTAMP,
то функция будет недетерминирована в любом случае.

Что касается вопроса "Кошерно ли UDF именовать как встроенную?", то моё мнение - нет.
Это приведёт только к путанице.
23 окт 17, 12:06    [20891692]     Ответить | Цитировать Сообщить модератору
 Re: Кошерно ли UDF именовать как встроенную?  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2394
PaulYoung,

некошерно. пожалейте следующих
23 окт 17, 12:45    [20891906]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить