2011-12-16 18 views
3

MS SQL Server 2005で、ストアドプロシージャパラメータとして演算子を渡す方法があるかどうかは疑問です。私は本当にそれが可能な場合でも、動的SQLの使用を避ける必要があります。T-SQLストアドプロシージャ - 動的AND演算子

@AppOperator = "AND" 

WHERE (1 = 1) @AppOperator (2 = 2) 
+1

わからない場合動的SQLを使用しないでください(そうでないとわかりません)。動的SQLが不可能な場合は、2つのほぼ同一の文を設定することができます。一方はwhereとandを、もう一方はwhereとifを使用してどちらを使用するかを決定します。 – Twelfth

答えて

4
あなたは(表現が繰り返される必要があるため)場合がありますどのような本当に

ないが、これは動作します:あなたが動的に割り当てられたオペレータを持つクエリを持つことができるようになります

@AppOperator = "AND" 

... 
WHERE (
     @AppOperator = "AND" AND ((1 = 1) AND (2 = 2)) 
     OR 
     @AppOperator = "OR" AND ((1 = 1) OR (2 = 2)) 
) 
... 
+0

これは機能するはずです。神に感謝私は1つの表現を繰り返すだけです。助けてくれてありがとう! – Jared