Udostępnij za pośrednictwem


Funkcje zdefiniowane przez użytkownika w AdventureWorks

The AdventureWorks sample OLTP database includes several Transact-SQL user-defined functions.Przykłady typowych funkcji języka (CLR) w czasie wykonywania przez użytkownika są dostępne w Przykłady programowania do środowiska CLR.

Środowisko CLR funkcje zdefiniowane przez użytkownika

Poniższa lista zawiera przykłady funkcja zdefiniowanej przez użytkownika CLR, które są dostępne.Aby uzyskać więcej informacji na temat środowiska CLR funkcji zdefiniowanych przez użytkownika Zobacz Środowisko CLR funkcje zdefiniowane przez użytkownika.

Przykład

Description

Supplementary-Aware String Manipulation

Pokazuje wykonania 5 Transact-SQL Funkcje tekstowe, które zawierają ten sam ciąg modyfikować funkcje jak wbudowany z nich, lecz dodatkowe dodatkowych znaków obsługują możliwość obsługiwać standardu Unicode i ciągi znaków dodatkowych. Pięć funkcje są len_s() left_s(), right_s(), sub_s() i replace_s().Są to równoważną wartości funkcji wbudowanych ciąg LEN() LEFT(), RIGHT(), SUBSTRING() i REPLACE().

In-Process Data Access Sample

Zawiera kilka funkcji proste, które wykazują różnych funkcji dostawca SQLCLR danych w procesie dostępu.

AdventureWorks Cycles CLR Layer

Zawiera funkcja konwersji waluty zwracającą wystąpienie typu waluty zdefiniowanych przez użytkownika.

UDT Utilities

Zawiera funkcje do wirtualny plik dziennika metadane w celu udostępnienia Transact-SQL; Przykładowe funkcje przesyłania strumieniowego wycenione tabeli zwrócić typów w zestawie jako tabela; a także funkcje do zwracania pól, metod i właściwości w typ zdefiniowany przez użytkownika. Pokazuje technologii, takich jak strumieniowe przesyłanie danych wartości tabela funkcji, systemu Microsoft .NET Framework odbicia interfejsów API i wywołania funkcji wycenione tabela Transact-SQL.

Funkcje zdefiniowane przez użytkownika języka Transact-SQL

Następujące tabela list Transact-SQL Funkcje zdefiniowane przez użytkownika, które są uwzględnione w AdventureWorks Przykładowa baza danych OLTP. Aby uzyskać więcej informacji na temat Transact-SQL Funkcje zdefiniowane przez użytkownika, zobacz Opis funkcji zdefiniowanej przez użytkownika.

funkcja zdefiniowanej przez użytkownika

Description

Parametry wejściowe

Zwracanie wartości

ufnLeadingZeros

wartość skalarna funkcji, która dodaje zera prowadzące do wartości określonej liczby całkowitej.Funkcja zwraca varchar(8) Typ danych.

@valueint

@ReturnValuevarchar(8)

ufnGetContactInformation

Ułatwia użytkownikowi dostępu do danych zawierający złożoną kwerendę w funkcja zwracająca tabelę.

@contactidint

ContactIDint, FirstNamenvarchar(50), LastNamenvarchar(50), JobTitle nvarchar(50), ContactType nvarchar(50)

ufnGetProductDealerPrice

Funkcja skalarna obliczania ceny dostawcą konkretnego produktu na podstawie listy ceny produktu w określonym dniu.

@productIDint, @orderdate

datetime

@DealerPricemoney

Przykłady

A.Za pomocą dbo.ufnLeadingZeros

W poniższym przykładzie użyto ufnLeadingZeros Funkcja generowania numer konta odbiorcy na podstawie istniejącej CustomerID kolumna w Customer Tabela.

USE AdventureWorks;
GO
SELECT CustomerID,('AW' + dbo.ufnLeadingZeros(CustomerID)) 
    AS GenerateAccountNumber
FROM Sales.Customer
ORDER BY CustomerID;
GO

B.Za pomocą dbo.ufnGetContactInformation

The AdventureWorks database contains the names of employees, customers (store representatives or individual consumers), and vendor representatives in one tabela, the Contact tabela.Funkcja wycenione tabela ufnGetContactInformation, zwraca jeden wiersz dla określonej ContactID.

USE AdventureWorks;
GO
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(2200);
GO
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(5);
GO

C.Za pomocą dbo.ufnGetProductDealerPrice

W poniższym przykładzie użyto ufnGetProductDealerPrice funkcja zwracająca ceny dealerów zdyskontowanego papieru dla wszystkich produktów w ProductListPriceHistory Tabela.

USE AdventureWorks;
GO
SELECT ProductID, ListPrice, dbo.ufnGetProductDealerPrice(ProductID, StartDate) AS DealerPrice,
    StartDate, EndDate
FROM Production.ProductListPriceHistory
WHERE ListPrice > .0000
ORDER BY ProductID, StartDate;