Bonjour tout le monde,

Afin d'éditer un document comportant des champs de fusion, j'ai créé une fonction SQL qui récupère et concatène les valeurs de la base de données.
Mon problème est que dans certains cas la fonction me retourne une valeur supérieure à 8000. J'ai lu sur le forum qu'il fallait utiliser la syntaxe
varchar (max), mais je n'arrive pas à compiler ma fonction en utilisant cette déclaration .

De plus, pour le moment je suis sur un SQL Server 2000, mais dans les mois à venir, nous allons migrer sur un 2005, puis un 2008 (peut être ), je voudrais donc une solution qui puisse fonctionner dans les différentes versions si possible.

Voilà le squelette de ma 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
CREATE	FUNCTION  dbo.GetPublicationListe (@PK_IDAffaire uniqueidentifier)
RETURNS  VARCHAR(8000)
AS
BEGIN
 
DECLARE		
  @strListePublication	VARCHAR(8000),
  SET @strListePublication = ''
 
  [ // Concaténation des données dans la variable @strListePublication
  SET @strListePublication = @strListePublication + @Valeur_du_Curseur ]
 
  RETURN @strListePublication
END
J'ai essayé en remplaçant la valeur 8000 par max, mais dans ce cas là j'obtiens "syntaxe incorrecte vers 'max'." lors de la compile.

Merci d'avance pour vos réponses,
BibiSeal