SQL のパラメータ?

java の PreparedStatement, .NET の SQLCommand なんかにはパラメータをつけることができる。 WHERE 節なんかに @PARAM_NAME って書式で SQL を書いておくと、後で PARAM_NAME に対して具体的な値を設定できる機能。

以降は .NET の話。

これを使ってインクリメントとデクリメントを切り替えられるのかな、と思ったから、 UPDATE 文中に @SIGN というパラメータを定義して + または - を設定するようなコードを書いてみた。

インクリメントはうまく行く。なのにデクリメントの場合だけ、 @SIGN なんてパラメータは知らねえぜなどと文句を言われてしまう。なぜなぜ?

いろいろがんばってみたけどダメだったからパラメータは使わずに、 SQL 文を組み立てる段階で判断して符号を変えることにした。まぁこんなところでパラメータ使わなかったから何ってこともないだろうし。

ただ、なんとなく中途半端な気分。