4

観察ほどの質問ではありません...

ライブアプリケーションのアップグレードを見越して、開発マシンでSQLServer2008にアップグレードしています。私は一般的に標準のT-SQLを使用しており、おそらくANSIの標準SQLからそれほど遠くないので、問題は予想していませんでした。これまでのところ良いですが、私は非常に単純な変更に本当に投げ込まれました:

コードのリストを格納するためのシンプルで小さなルックアップテーブルを作成し、現在のデフォルトコードを示すビット列を含めていました。しかし、新しい/変更された「上位200行の編集」オプションを使用し、ビット列に0と1を入力すると、エラーが発生しました。

'セルの値が無効です-文字列が有効なブール値として認識されませんでした'

少し頭を悩ませた後、私はTrueとFalseを試しました-そしてそれらはうまくいきました。

したがって、この新しい編集機能では、以前の1文字ではなく、4文字または5文字を入力する必要があるようです。

さらに確認すると、''は引き続き使用できますが、' ...where bitval = 1'も使用できるようになり...where bitval = 'true'ました。ただし、返された結果は、これらのビット列を0または1としてレンダリングします。

それはすべて半歩後退したように聞こえます。世界の終わりではありませんが、不必要な迷惑です。

誰かがこの問題について何か洞察を持っていますか?または、SQL Server 2008で他に新しい落とし穴はありますか?

2012年の更新: SQL Server 2012をインストールしたばかりですが、この動作が「修正」されていることに気付きました-以前と同じように、「上位200行の編集」を使用して、True/Falseではなく1/0を行に直接入力できるようになりました' オプション。小さなことですが、嬉しいです。

4

3 に答える 3

3

常に「True」と「False」を使用してBIT列と比較することができます...この「強制」への変更は、フィールドがINTではなくBITであることを明確にするのに適していると思います。 。

個人的には、C#が「if(0)...」をサポートしていないのが好きです。わかりやすくするための好みだと思います。

于 2008-12-04T16:28:58.183 に答える
1

彼らがそれを吹き飛ばし、ルールを半分しか適用しなかったことを除いて、 update ステートメントで ...=True を使用してみて、何が起こるかを確認してください。ずっと行くか、まったく行かないかのどちらかです。申し訳ありませんが、Microsoft、そのマークを付けることはできません

于 2010-03-11T05:09:40.187 に答える
1

これを見つけた(何か他のものを準備した後)設計により組み込まれています

于 2008-12-05T19:08:04.007 に答える