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 et coller. Et à utiliser comme aide-mémoire pour la syntaxe. 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.

Comment créer une fonction avec un script SQL Server ?

Pour commencer, créer au préalable la table des clients avec le code disponible sur cette page avec le Code de création de la table d’exemple des 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.

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

En effet, 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 vides. Pour aller plus loin, il existe différents types de fonctions SQL à étudier.

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

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 qu’une fonction retourne un résultat. Tandis qu’une procédure stockée ne retourne pas forcément un résultat. Une procédure stockée est un ordonnancement de commandes SQL.