異端な開発者を許ぃたってチョ☆

異端な開発者=尾画茶の記事

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  26  : 記事  0  : コメント  194  : トラックバック  3

ニュース

ブログは初めて & よーわからん & 苦手です…… ルールがわかっていないので、ご無礼してしまったときはお許しください。

書庫

日記カテゴリ

コミュニティー

ブックマーク

初心者向け

2009年2月11日 #

データベースは、SQL Server しかよく知らないので、他の製品はどうかわからないけれど、Bitってつかいにくいな、と今まで思っていた。

Management Studio でも、編集画面だと、True、False で現われ、0とか1とか入力すると怒られ、True、Falseで編集しなければならないのに、他の場面では 0,1 で扱わねばならない。

Convert や Cast を使わずに、どれほど正確に Bit として認識してくれるのか、実験してみた。

ストアドプロシージャーの引数に、Bit を設定してみる。こんな風に。

CREATE PROCEDURE TEST1 @a Bit AS SELECT @a

で、引数の @a に色々と渡してみる実験。

当然のことながら、0、1は突破。'0'、'1'でも、問題なし。これくらいは当たり前。しかし、ここからがなかなか賢くて「おおっ」と思わせてくれた。

0以外の数字なら、すべて 1になる。''で囲っても同じだ。大文字と小文字を混在しても、'FaLsE'とか'tRUe'とか、それぞれ0、1と扱ってくれる。

これはやってて知ったのだが、SQL SERVER にも、TRUE、FALSEという予約語のようなものがあるらしく、''で囲わずに、TRUE、FALSEでも認識してくれる。

そして、空文字列の場合…… 0にしてくれる。これはかなり、ありがたい。NULLのときは、NULL。これは当たり前。

つまり、かなり柔軟に受け止めてくれるということだ。'TRUE'、'FALSE'以外の文字列(上記のように、大文字小文字は区別しない)だと、エラーとなる。

たぶん、無理だと思ってやったら、やっぱしだめだったのは、全角の数字。エラーになりました……

posted @ 12:07 | Feedback (63)