2016-10-25 11 views
-1

私のテーブルにというテーブルがあります。 同じテーブルに別の列を追加したい場合は、ブール型のデータ型列です。私は次のクエリを試みましたが、の構文エラーはデフォルトに近いと言います。私はこれが共通しており、多くの答えがあることを知っています。私はそれらの多くを試して、それを動作させるために把握できませんでした。だから私を助けてください。私はsqlの既存のテーブルにbooleanデータ型カラムを追加するには?

ALTER TABLE person add column "AdminApproved" BOOLEAN SET default FALSE; 
ALTER TABLE person alter column "AdminApproved" BOOLEAN SET default FALSE;   

を試してみました

クエリ私はあまりにもSETなしキーワードを試してみました。 SQL Serverで

+0

はTINYINT(1)OKではないでしょうか? trueの場合は1、falseの場合は0。 – Hien

+2

Googleで「ブール型データ型SQL Server」を検索すると何も表示されません。あなたは正しいです、これは非常に一般的であり、そこにはたくさんの回答があります。 – dfundako

答えて

7

それはあなたが列に必要を追加しないようにテーブルを変更する場合も、クエリ内の他の過ち

  1. がある

    ALTER TABLE person add [AdminApproved] BIT default 'FALSE'; 
    

    を格納することがNULLすることができますけれども、それは、BITです言い換えればcolumnのキーワードalterの文

  2. デフォルトのc拘束を使用する必要はありませんSETキーワード

  3. BITのデフォルト値は('TRUE' or '1')/('FALSE' or 0)です。 TRUEまたはFALSEニーズがない識別子

+0

@ Prdpありがとうございました – Mike

+3

ここにちょっと注意してください。 BITは真のブール値ではありません。 3つの状態、0,1、およびNULLを許可します。それは微妙ですが、理解することが非常に重要です。また、ブール値のようにコード化することはできません。 –

+0

@SeanLange - もっと賛成です。 –

5

Pによって与えられた答えとしてstringとして挙げたにரதீப்はNULL可能ブール値ではなく、あなたのための罰金かもしれブール値を作成します。たとえば、C#では、bool? AdminApprovedではなく、bool AdminApprovedが作成されます。

あなたは(falseに不履行)ブール値を作成する必要がある場合:

ALTER TABLE person 
    ADD AdminApproved BIT 
    DEFAULT 0 NOT NULL; 
関連する問題