Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
SQL Server prend en charge trois types de fonctions utilisateurs : les fonctions scalaires, les fonctions tables en ligne
et les fonctions tables multi-instructions. Une fonction accepte entre 0 et 1024 paramètres d’entrée et retourne, soit
une valeur scalaire, soit une table. Pour chacun des paramètres de la fonction, il est possible de définir une valeur par
défaut en utilisant le mot clé DEFAULT. Mais lors de l’appel de la fonction, il faut préciser le mot clé DEFAULT pour
utiliser la valeur par défaut. Ce comportement est différent de celui des procédures où la valeur par défaut est prise
en compte de façon automatique si le paramètre n’est pas précisé lors de l’appel. Les fonctions de type scalaire
retournent, à l’aide du mot clé RETURN, une valeur scalaire. Bien sûr, les données de type timestamp, d’un type de
données défini par l’utilisateur et d’un type table ou cursor ne peuvent être renvoyées. Il en est de même pour les
types de données text, ntext et image.
Les fonctions tables retournent comme résultat une table. Elles ne contiennent pas de corps et la table est le résultat
d’une commande SELECT unique. Si la fonction est composée de plusieurs instructions, alors les instructions sont
encadrées par les mots clés BEGIN et END.
Les fonctions disposent d’un champ d’action limité et elles ne peuvent en aucun cas modifier leur environnement
d’exécution. Depuis une fonction, il n’est donc pas possible de modifier le contenu d’une table de la base de données.
À l’intérieur d’une fonction, les seules actions possibles sont celles qui vont modifier les objets locaux à la fonction.
Dès que la fonction est créée à l’aide de l’instruction CREATE FUNCTION, la clause WITH SCHEMABINDING permet de
lier la fonction à tous les objets auxquels elle fait référence. Dès lors, toute modification (ALTER) ou suppression
(DROP) de ces objets est vouée à l’échec. Cette clause, non obligatoire, suppose que tous les objets référencés
appartiennent à la même base de données et que le propriétaire de la fonction possède un droit de REFERENCE sur
les objets référencés par la fonction.
Fonctions scalaires
Exemples
Création de la fonction nbre_cde qui retourne le nombre de commandes passées par un client transmis en paramètre :
AM1
Cours 10 : Les fonctions définies par l’utilisateur
Création d’une fonction table inline qui permet de connaître les articles qui possèdent un prix inférieur à celui passé en paramètre :
Création d’une fonction qui retourne une table et qui permet de connaître, pour le client passé en paramètre, le nombre de commandes
passées et le montant moyen de ces commandes.
AM2
Cours 10 : Les fonctions définies par l’utilisateur
AM3
Cours 10 : Les fonctions définies par l’utilisateur
AM4