J'ai une procédure stockée qui génère dynamiquement une requête. La clause where associée à cette requête est basée sur les valeurs de filtre sélectionnées par un utilisateur. Quoi que je fasse, la clause where ne semble pas être prête.SQL Server 2005 - Création d'une clause WHERE
-- Dynamically build the WHERE clause based on the filters
DECLARE @whereClause as nvarchar(1024)
IF (@hasSpouse > -1)
BEGIN
IF (@hasSpouse = 0)
SET @whereClause='p.[HasSpouse]=0'
ELSE
SET @whereClause='(p.[HasSpouse]=1 OR p.[HasSpouse] IS NULL)'
END
-- Dynamically add the next filter if necessary
IF (@isVegan > -1)
BEGIN
IF (LEN(@whereClause) > 0)
BEGIN
SET @whereClause = @whereClause + ' AND '
END
IF (@isVegan = 0)
SET @whereClause = @whereClause + 'c.[IsVegan]=0'
ELSE
SET @whereClause = @whereClause + '(c.[IsVegan]=1 OR c.[IsVegan] IS NULL)'
END
PRINT @whereClause
La fonction @whereClause n'imprime jamais rien. À son tour, le LEN (@whereClause) est toujours NULL. Les valeurs @isVegan et @hasSpouse sont transmises dans la procédure stockée. Les valeurs sont ce que j'attendais.
Qu'est-ce que je fais mal? Pourquoi la @whereClause n'est-elle jamais définie?
Nous vous remercions de votre aide!
Merci!
+1: Mes sentiments exactement, en particulier les supports ... –