Bonjour,

je chercher à créer une fonction qui me retourne le contenu de la colonne dont le nom est passée en paramètre de la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 CREATE FUNCTION [FN_GET_TERMES](@CODE_TERMES VARCHAR(30),@COLUMN_NAME VARCHAR(10))
RETURNS VARCHAR(50)
AS
BEGIN 
	DECLARE @TERMES AS VARCHAR(50)
	DECLARE @sSql AS NVARCHAR(4000)
	DECLARE @sST AS VARCHAR(5)	
	SET @sST=''''
 
	SET @sSql = 'SELECT @TERMES = ' + @COLUMN_NAME + 
	+ ' FROM TERMES ' +
	+ ' WHERE CODE_TERMES = ' + @sST + @CODE_TERMES + @sST
 
	EXECUTE(@sSql)
 
	RETURN @TERMES
END
A la compilation il me dit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Serveur : Msg 443, Niveau  16, État 2, Procédure FN_GET_TERMES, Ligne 20
Utilisation incorrecte de 'EXECUTE' à l'intérieur d'une fonction.
N'est ce pas possible d'utiliser EXEC ou EXECUTE dans une fonction ?
Sinon comment puis-je faire car je voudrais utiliser cette fonction dans mes requêtes de procédure stockées (SELECT FN_GET_TERMES('SG_TOUTES',@COLNAME))
Merci par avance de votre aide