Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Réflexions informatiques

Ecrire une fonction retournant plusieurs résultats

03/07/2008
Il est possible de retourner plusieurs valeurs dans une fonction SQL-SERVER en utilisant une table pour renvoyer les données.

Voici la syntaxe (particulière) d'une fonction renvoyant la date actuelle et la durée à partir d'une date demandée :

IF OBJECT_ID ('[dbo].[CalculeDuree]') IS NOT NULL
    DROP FUNCTION [dbo].[CalculeDuree];
GO

CREATE FUNCTION [dbo].[CalculeDuree] (
    @dateFin datetime)
    -- Table retournée
    RETURNS @tableRetour TABLE (DateActuelle DATETIME, Duree INT)
    AS
   
    BEGIN

        -- Déclare les variables
        DECLARE @dureeCalc AS INT;
        DECLARE @dateActu AS DATETIME;

         -- Affecte les variables
        SET @dateActu=getdate();
        SET @dureeCalc = DATEDIFF(mi, @dateFin, @dateActu);

        -- Insère les variables pour le retour
        INSERT INTO @tableRetour
            VALUES (@dateActu, @dureeCalc)
        RETURN

    END
GO

Exécute la fonction et retourne les résultats
SELECT DateActuelle, Duree FROM dbo.CalculeDuree ('2008-07-03 10:26:00')


Attention : dans le cas d'un appel avec un nom de champ, il faut que le compatibility_levelsoit à 90.
Affichage :
SELECT compatibility_level, * FROM sys.databases


Modification :
EXEC SP_DBCMPTLEVEL NomBase, 90
Dernière modification le 23/04/2019 - Quillevere.net

Rechercher sur le site

rss RSS info Informations