2013-03-11 11 views
5

SQL CEデータベースからテーブル情報を取得するクエリを作成しようとしましたが、後でXMLにエクスポートするためにC#で入力できます。ブール値(ID列であるかどうかを明示的に表す)を持つ「IDENT」という名前の列の1つが必要です。このためSQL CE selectステートメントの逆ブール値(ビット)値

、次のようにAUTOINC_SEED列がnullの場合、私はチェックしています:

select isnull(AUTOINC_SEED) as IDENT from information_schema.columns

しかし、これは非ID列とID列のためのFALSEにTRUEを返します! select文の中のブール値を逆にする方法はありますか?

編集:私はこの特定の問題を解決するためにケースステートメントを行うことができますが、SQLのブール値(ビット)の値を反転することに興味があります。

+0

私はSQL Server CompactのスクリプティングAPIを試しましたか、関連するすべてのスキーマ情報を得ることができますか? – ErikEJ

+0

@ErikEJあなたは私にそれへのリンクをお願いできますか? –

+0

あなたはそれをhttp://exportsqlce.codeplex.com – ErikEJ

答えて

12

SQL Serverのカラット(^)は、bitwise exclusive ORオペレータです。

1^1が0に等しく、1^0は1に等しいので、あなただけ行うことができます。

SELECT (1^[YourBitColumn]) as InverseBit 

私はどちらかのSQL CEが手元にないが、SQL CEはこれを持っているように見えますから、私は次のクエリを信じます

select (1^AUTOINC_SEED) as IDENT from information_schema.columns 
+0

で見つけることができます申し訳ありません、ただそれを試してみてください。はい、カラットが働いていましたが、1を0に置き換える必要がありましたが、 'select(0^AUTOINC_SEED)をIDENT'としてください。それほど私はこれに助けが必要ではなく、もっと興味があった。結局のところ、 'case'ステートメントで解決することができます - しかし、質問に答えると私の好奇心を満足してくれてありがとう! –

+0

はティルダのように見えます(〜)http://stackoverflow.com/a/177893/1579626 https://msdn.microsoft.com/en-us/library/ms173468.aspxも参照してください –

関連する問題