Partager via


Fonctions définies par l'utilisateur dans AdventureWorks

L'exemple de base de données OLTP AdventureWorks comporte plusieurs fonctions Transact-SQL définies par l'utilisateur. Des exemples de fonctions CLR (common language runtime) définies par l'utilisateur sont disponibles dans CLR Programmability Samples.

Fonctions CLR définies par l'utilisateur

Le tableau suivant répertorie les exemples de fonctions CLR définies par l'utilisateur qui sont disponibles. Pour plus d'informations sur les fonctions CLR définies par l'utilisateur, consultez CLR User-Defined Functions.

Exemple Description

Manipulation de chaînes sensible aux caractères supplémentaires

Illustre la mise en œuvre de cinq fonctions de chaîne Transact-SQL qui, si elles offrent les mêmes fonctions de modification de chaîne que les fonctions intégrées, disposent en outre d'une capacité à reconnaître les caractères pour traiter à la fois les chaînes Unicode et les chaînes de caractères supplémentaires. Ces cinq fonctions sont len_s(), left_s(), right_s(), sub_s() et replace_s(). Elles sont équivalentes aux fonctions de chaîne intégrées LEN(), LEFT(), RIGHT(), SUBSTRING() et REPLACE().

Exemple In-Process Data Access

Contient plusieurs fonctions simples qui démontrent diverses caractéristiques du fournisseur d'accès aux données intégré SQLCLR.

Exemple StringUtilities

Contient une fonction en continu à valeur de table, écrite en C# et Microsoft Visual Basic, qui fractionne une chaîne séparée par des virgules en table à une colonne. Elle contient également une fonction d'agrégation qui convertit une colonne de chaîne en chaîne séparée par des virgules.

Couche CLR de la base de données Adventure Works Cycles

Contient une fonction de conversion de devise qui retourne une instance d'un type de devise défini par l'utilisateur.

Exemple UDTUtilities

Comporte des fonctions pour exposer les métadonnées d'un assembly en Transact-SQL ; des exemples de fonctions en continu à valeur de table pour retourner les types dans un assembly sous forme de table ; et enfin des fonction pour retourner les champs, méthodes et propriétés dans un type défini par l'utilisateur. Illustre les technologies telles que les fonctions en continu à valeur de table, les API de réflexion Microsoft .NET Framework et l'appel des fonctions à valeur de table à partir de Transact-SQL.

Fonctions Transact-SQL définies par l'utilisateur

Le tableau suivant répertorie les fonctions Transact-SQL définies par l'utilisateur qui sont incluses dans l'exemple de base de données OLTP AdventureWorks. Pour plus d'informations sur les fonctions Transact-SQL définies par l'utilisateur, consultez Présentation des fonctions définies par l'utilisateur.

Fonction définie par l'utilisateur Description Paramètres d'entrée Valeurs de retour

ufnLeadingZeros

Fonction scalaire qui ajoute des zéros non significatifs à un entier spécifié. La fonction retourne un type de données varchar(8).

@valueint

@ReturnValuevarchar(8)

ufnGetContactInformation

Simplifie l'accès de l'utilisateur aux données en encapsulant une requête complexe dans une fonction à valeur de table.

@contactidint

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

ufnGetProductDealerPrice

Fonction scalaire qui calcule le prix de vente d'un produit spécifique en fonction du prix courant du produit à une date fixe.

@productIDint, @orderdate

datetime

@DealerPricemoney

Exemple

A. Utilisation de la fonction dbo.ufnLeadingZeros

L'exemple suivant utilise la fonction ufnLeadingZeros pour générer un numéro de compte client à partir d'une colonne CustomerID existante dans la table Customer.

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

B. Utilisation de la fonction dbo.ufnGetContactInformation

La base de données AdventureWorks contient les noms des employés, des clients (responsables de magasins ou clients individuels) et des responsables des fournisseurs dans une table, la table Contact. La fonction à valeur de table ufnGetContactInformation retourne une ligne pour chaque ContactID spécifié.

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. Utilisation de la fonction dbo.ufnGetProductDealerPrice

L'exemple suivant utilise la fonction ufnGetProductDealerPrice pour retourner le prix de vente réduit pour tous les produits de la table ProductListPriceHistory.

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

Voir aussi

Autres ressources

Objets SQL Server dans AdventureWorks
CREATE FUNCTION (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005