6

BooleanSQLを使用してms-accessのテーブルに列を追加しようとしています。私はJETを使用しています。これが、私が試したSQLクエリです。

Query = "ALTER TABLE tabDatafiveMinutely ADD CON0001 BOOLEAN DEFAULT FALSE"
Query = "ALTER TABLE tabDatafiveMinutely ADD CON0001 BOOLEAN"

私が得ているエラーは「フィールド定義の構文エラー」です

ご協力いただきありがとうございます

編集:

nullここで、ではなくデフォルトにしますfalse。私は試しましたがdefault null、これはまだ私falseに与えます、誰かがこれを手伝うことができますか?

結果:

ms-accessデータベースは、nullでtrueはなく取ることができます。falseしたがって、integer代わりにを使用することにしました。

4

3 に答える 3

11

Yes/No列の同等の SQL 型は次のとおりです。BIT

ALTER TABLE tabDatafiveMinutely
    ADD COLUMN CON0001 BIT   DEFAULT 0   NOT NULL

マイクロソフトのドキュメントによると

メモ
DEFAULT ステートメントは、Jet OLE DB プロバイダーと ADO を介してのみ実行できます。Access SQL ビューのユーザー インターフェイスから使用すると、エラー メッセージが返されます。


@Pere が指摘しているように、Jet Engine (Access のクエリ エンジン) は DEFAULT 値を既存の行に適用しません。テーブルを変更した後、UPDATE ステートメントを実行する必要があります。

UPDATE tabDatafiveMinutely SET CON0001 = 0 WHERE CON0001 IS NULL
于 2012-11-28T13:30:33.180 に答える
3

BOOLEAN ではなく BIT データ型を使用する必要があります。

データ型にアクセスします。

于 2012-11-28T13:11:55.987 に答える
0

どこから構文を読んでいるのかわかりませんが、より良いソースが必要です。

ALTER TABLE tabDatafiveMinutely
ADD COLUMN CON0001 <datatype>

ブール型の場合は、BIT、INTEGER、または CHAR(1) から選択する必要があると思います。アプリケーションに依存します。たとえば、従来のシステムでは、CHAR(1) 列で「t」と「f」を使用することがよくあります。

于 2012-11-28T13:20:21.580 に答える