Bonjour,

Je cherche une façon d'évaluer si une expression dans un variable de type NVARCHAR est vraie ou fausse.

Lorsque c'est une expression booléenne, le méthode suivante fonctionne très bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
DECLARE @expression NVARCHAR(100); SET @expression = '((1 | 0))';
DECLARE @Result INT;
 
IF OBJECT_ID('tempdb..#MyTableTemp') IS NOT NULL DROP TABLE #MyTableTemp
CREATE TABLE #MyTableTemp (result INT)
EXEC('INSERT INTO #MyTableTemp SELECT ' + @expression )
SET @Result = (SELECT TOP 1 result FROM #MyTableTemp)
DROP TABLE #MyTableTemp 
PRINT @Result
Resultat obtenu: 1

Par contre, je souhaite évaluer une expression semblable à celle-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DECLARE @expression NVARCHAR(100); SET @expression = '((1 | 0) & (2 < 3))';
OU
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DECLARE @expression NVARCHAR(100); SET @expression = '((1 OR 0) AND (2 < 3))';
Mais ça ne fonctionne pas. Quelqu'un a une suggestion ?

Pascal