SQL Server 2008-テーブルの編集:ビット列には「True」または「False」が必要です

StackOverflow https://stackoverflow.com/questions/341201

質問

質問としてではなく、観察...

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

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

  

'セルの無効な値-文字列は   有効なブール値として認識されない '

少し頭を悩ませた後、TrueとFalseを試しましたが、うまくいきました。

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

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

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

この問題に関する洞察はありますか?または、SQL Server 2008で他の新しいGotchaがありますか?

2012アップデート: SQL Server 2012をインストールした直後、この動作が「修正」されていることに気付きました。以前と同様に、「上位200行の編集」オプションを使用して、行に直接True / Falseではなく1/0を入力できます。それは小さなことですが、私は幸せです。

役に立ちましたか?

解決

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

他のヒント

BITカラムと比較するために、常に 'True'および 'False'を使用できました...この変更は<!> quot; force <!> quot;フィールドがINTではなくBITであることを明確にするとよいでしょう。

個人的には、C#が<!> quot; if(0)... <!> quot;をサポートしていないことが好きです。わかりやすさを優先しているだけだと思います。

これを見つけただけです(他の要素を準備した後)設計により組み込まれた

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top