Udostępnij za pośrednictwem


User-Defined Function Basics

Like functions in programming languages, Microsoft SQL Server user-defined functions are routines that accept parameters, perform an action, such as a complex calculation, and return the result of that action as a value.Zwracana wartość może być pojedynczą wartość wartość skalarna lub wynik zestaw.

Zalety funkcja zdefiniowanej przez użytkownika

Korzyści wynikające ze stosowania funkcji zdefiniowanej przez użytkownika SQL Server są następujące:

  • Umożliwiają one modułowych programowania.

    Utwórz funkcja, raz, należy ją zapisać w bazie danych i wywołania na dowolną liczbę razy w programie.Funkcje zdefiniowane przez użytkownika można modyfikować, niezależnie od kodu źródłowego programu.

  • Umożliwiają one szybsze wykonywanie.

    Podobna do procedury przechowywane Transact-SQL Funkcje zdefiniowane przez użytkownika, zredukować koszty kompilacji Transact-SQL Kod plany buforowanie i ponowne używanie ich do wielokrotnego wykonania. Oznacza to, że funkcja zdefiniowana przez użytkownika nie musi być reparsed i reoptimized z każdym użyciu, co znacznie krótszy czas realizacji.

    CLR functions offer significant performance advantage over Transact-SQL functions for computational tasks, string manipulation, and business logic.Transact-SQL functions are better suited for data-access intensive logic.

  • Mogą one zmniejszyć ruch w sieci.

    Operację, która filtruje dane oparte na niektórych złożonych ograniczenie, które nie mogą zostać zapisane w pojedynczej wyrażenie wartość skalarna może być wyrażona jako funkcja.Funkcja może następnie wywoływana za pomocą klauzula WHERE, aby zmniejszyć liczbę lub wierszy wysłanych do klient.

Składniki, funkcja zdefiniowanych przez użytkownika

Funkcje zdefiniowane przez użytkownika mogą być napisane w Transact-SQL, lub w dowolnym .NET, języka programowania. Aby uzyskać więcej informacji na temat korzystania z języków .NET w funkcjach zobacz Środowisko CLR funkcje zdefiniowane przez użytkownika.

Wszystkie funkcje zdefiniowane przez użytkownika ma taką samą strukturę dwóch części: Nagłówek i jednostka. Funkcja przyjmuje zero lub więcej parametrów wejściowych i zwraca wartość wartość skalarna lub tabela.

Definiuje nagłówek:

  • Nazwa funkcja o nazwie właściciela/schematu opcjonalne

  • Parametr wejściowy, nazwę i typ danych

  • Opcje mające zastosowanie do parametru wejściowego

  • Zwraca typ danych parametru i opcjonalna nazwa

  • Opcje dotyczące parametru zwrotu

Jednostka definiuje akcja lub logiki, funkcja do wykonania.Zawiera ono zarówno:

  • Jeden lub więcej Transact-SQL instrukcje służące do wykonywania funkcja logicznych

  • Odwołanie do wirtualny plik dziennika .NET

W poniższym przykładzie przedstawiono prostą Transact-SQL funkcja zdefiniowanej przez użytkownika i identyfikuje główne składniki z tej funkcja. Funkcja oblicza podanej data i zwraca wartość wyznaczające położenie tej data w tygodniu.

W poniższym przykładzie pokazano używany w funkcja Transact-SQL Instrukcja.

Here is the result set.

DayOfWeek
---------
6  
(1 row(s) affected)