Comment créer une fonction SQL Server

Comment créer une fonction SQL Server simple? Cet exemple de code en langage Transact-SQL est à copier/coller comme aide-mémoire. En effet, voici un script de création d’une fonction SQL avec passage d’un numéro de client en paramètre et sélection du nom du client comme résultat.

Les fonctions T-SQL, tout comme les procédures stockées, sont au cœur de la programmation des bases de données Microsoft. En effet, elles permettent de gérer l’intelligence des bases et de réutiliser le code avec un seul mot clef. Le principe de base est de réutiliser le code au lieu de programmer plusieurs fois la même chose.

Pour commencer, créer au préalable la table des clients avec le code disponible sur cette page:

Code de création de la table d’exemple CLIENTS

Le code permet d’avoir la table source utilisé par la vue. La table source dans votre cas sera à adapter avec vos propres objets.

Exemple de code pour créer une fonction SQL Server

Cette fonction accepte comme paramètre en entrée le numéro de client et retourne le nom du client. Le nom est stocké dans la variable de retour @NomClient.

CREATE FUNCTION dbo.ufnListeClients(@NoClient INTEGER)
RETURNS NVARCHAR(20)
AS 
BEGIN 
  DECLARE  @NomClient  AS NVARCHAR(20);
  SELECT  @NomClient = [NOM]
  FROM    dbo.CLIENTS
  WHERE    [NOCLIENT] = @NoClient;
  RETURN  @NomClient;
END
GO

Pour finir, nous avons vu comment créer une fonction SQL Server simple, qui comporte 4 actions :

  • Déclarer de la variable pour le nom du client @NomClient.
  • Passer le numéro de client en paramètre @NoClient.
  • Sélectionner le Nom du client correspondant au numéro passé en paramètre via la variable @NomClient.
  • Retourner le nom du client, toujours à travers la variable.

Ensuite, pour exécuter la fonction, il suffit d’exécuter le code suivant:

SELECT * FROM dbo.ufnListeClients(1);

A noter que la syntaxe d’appel à une fonction se fait de la même manière que pour une table. La différence est le passage du paramètre. Pour une fonction sans paramètre alors les parenthèses restent vide.

Enfin, voici un script pour modifier une fonction SQL Server.

Pour aller plus loin, il existe différents types de fonctions SQL à étudier.

Quelle est la différence entre une fonction et une procédure stockée SQL Server?

La différence majeure entre une fonction et une procédure stockée SQL Server est que la fonction retourne un résultat. La procédure stockée ne retourne pas forcément un résultat.