Date: Wed, 13 Aug 2003 19:53:52 +0900
From: HYODO Tomomi <who@example.co.jp>
こんにちわ。お世話になります。
MSDE2000+VB.NETで開発を行っています。
パラメータつきストアドプロシージャを
作成しているのですが、
パラメータによって、ストアドプロシージャ
内のSelect文のWhere条件を変えたいと考えています。
具体的には、
@Param1
@Param2
@Param3
と3つのパラメータがあったとして、
すべてのパラメータに値がセットされていたら、
すべてを検索条件にしたいのですが、
(SELECT *
FROM table
WHERE par1 = @Param1 AND par2 = @Param2 AND par3 = @Param3 というように)
セットされていないものについては、条件から
はずしたいのです。
(たとえば、@Param1と@Param3に値がセットされていて、
@Param2が空である場合、
SELECT *
FROM table
WHERE par1 = @Param1 AND par3 = @Param3 というように)
3つのパラメータのすべてのあるなしパターンで分岐をし、
別々にSELECT文を書けば可能ではあるのですが、
SELECT文の数がかなりすごいことになり、またパラメータが
増える可能性もあるので、あまりしたくありません。
かといって、WHERE文の条件を文字列変数で持ち、という
プログラム言語のようなことはできないようです。
何か手立てはないものでしょうか?
また、このようなことはストアドプロシージャでなく他の
方法がよい、などありましたら、ご教示いただければ幸いです。
同じ処理を使用することが多いのと、汎用性を持たせる
ために、できるだけ複雑なDB周りの処理はプログラム側でなく
DB側に持ちたいと考えています。
長くなりましたが、どうぞよろしくお願いいたします。
__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!
http://bb.yahoo.co.jp/
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|