人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQL-SERVER 2000 のストアドプロシジャーで、ORDER 句 、WHERE 句が、実行する都度に変わる場合、みなさんどんな風にSQLかいてますか?

やっぱり、sp_executesql で、動的実行するのが普通なんでしょうか、というか、他の方法が思いつかないので、聞いてみます

●質問者: rikimaru
●カテゴリ:コンピュータ
✍キーワード:SQL プロ 他の方法 普通
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● sukkyxp
●100ポイント

http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=20242

CASE文で条件によってORDER節、WHERE節を作成するのはどうでしょうか?

◎質問者からの返答

where句は素晴らしい解決方法でした

order句もcase使えるのかな、あとで試してみます


2 ● toriaezu
●100ポイント

http://www.microsoft.com/japan/msdn/library/default.asp?url=/jap...

MSDN ライブラリ サイト移行に関する重要なお知らせ

どういったことを実現したいのか、その要件にも関わってきますが、基本的には

1.sp_executesqlによる動的実行

2.サブクエリによるORDER 句 、WHERE 句の変更

3.プログラム側で動的にSQL文を生成して実行

この3つになるように思います。

要はORDER 句 、WHERE 句がどのように変わるのか、その変化は数通りしかないのか、

それとも予測できないほどにあるのか……といったことで実装方法は変えられますよ、ということです。

私の意見としては3はラクですが負荷が高くなりやすいので、やはり1がよいのかなあといった印象を持っています。

うまく説明できなくてごめんなさい。参考になりましたでしょうか。

◎質問者からの返答

そうですね、確かに3の方法が一番普通に考えるんですがsqlがコンパイルされない、sqlインジェクションが怖いと色々あって思案していました

大体同じだったので安心しました

最初のかたの答えと合わせて活用させてもらいます

ありがとうございました

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ