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

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

Cet exemple de code en langage Transact-SQL est à copier, coller, et adapter. Et à utiliser comme aide-mémoire pour la syntaxe. En effet, ce script de création d’une fonction MS SQL utilise en entrée un numéro de client comme paramètre et effectue une sélection du nom du client correspondant 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 au maximum les éléments déjà développés au lieu de programmer plusieurs fois la même chose. C’est la factorisation du code informatique.

Créer une fonction SQL Server avec un script

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 un 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, le code se constitue de 4 étapes principales :

  • 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 exemple de 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 obligatoirement un résultat. Une procédure stockée est un ordonnancement de commandes SQL.