Створення користувальницьких функцій

Користувальницькі функції були представлені у версії SQL Server 2000, але спочатку були якось мляво сприйняті спільнотою користувачів SQL Server

Потім співтовариство відкрило для себе, що за допомогою функцій користувача можна впровадити в запити обробку складної логіки і таким чином вирішувати завдання, для яких колись було потрібно використання курсора У результаті користувача функції стали улюбленим інструментом всіх серйозних розробників додатків для SQL Server

Переваги для користувача функцій перераховані нижче

■ З їх допомогою можна впровадити в запити складну логіку

■ Створюючи нові функції, можна проектувати складні вирази

■ Ці функції володіють всіма достоїнствами уявлення, оскільки можуть використовуватися в реченні FROM інструкції SELECT і у виразах і можуть бути задіяні у схемі До того ж користувача функції можуть приймати параметри, в той час як уявлення – ні

■ Вони мають достоїнствами збережених процедур, так як можуть бути скомпільовані і оптимізовані таким же способом

Головним аргументом противників користувача функцій є питання переносимості

Функції для привязані до SQL Server, і будь-яку базу даних, що використовує безліч таких функцій, буде складно або навіть неможливо перенести на іншу платформу СУБД без суттєвої переробки Це завдання ускладнюється тим, що також повинні бути переписані і всі інструкції SELECT, в які впроваджені користувальницькі

функції Якщо в майбутньому планується розгортання бази даних на інших платформах, то краще замінити всі користувальницькі функції уявленнями або збереженими процедурами Функції для підрозділяються на три типи (рис 21)

■ Скалярні, що повертають одне значення

■ Впроваджені табличні, аналогічні уявленням

■ Складні табличні, що створюють в програмному коді результуючий набір даних

Puc 221 У вікні Object Explorer утиліти Management Studio перераховані всі користувальницькі функції, визначені в базі даних, з поділом на скалярні і табличні

Користувальницькі функції в версії SQL Server 2005 були покращені в двох відносинах По-перше, незважаючи на те, що код CLR не можна назвати кращим інструментом для серверних програм, що працюють з даними, в деяких користувальницьких функціях краще використовувати все-таки його По-друге, табличні користувача функції можуть приймати параметри у вигляді рядків, аналогічно тому, як корельовані підзапити працюють із зовнішніми запитами Це дозволяє вирішити деякі складні проблеми

Джерело: Нільсен, Пол Microsoft SQL Server 2005 Біблія користувача : Пер з англ – М: ООО ІД Вільямс , 2008 – 1232 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*