2017-08-21 4 views
0

CREATE TABLEの最後にDEFAULT CONSTRAINTを追加するにはどうすればよいですか?CREATE TABLEの最後にDEFAULT CONSTRAINTを追加します。

私はそれが動作していない

CREATE TABLE myTable (
    table_id  INT NOT NULL, 
    firstColumn NVARCHAR(10), 
    secondColumn INT, 
    thirdColumn INT, 
    CONSTRAINT DEF_secColumn DEFAULT 0 FOR secondColumn 
) 

のように末尾に独立したラインを持っていると思います。エラーメッセージが表示されます。

'for'の構文が正しくありません。

お手伝いできますか?フォワードで多くのありがとう!

+0

毎の[ドキュメント]によって提案され、第3のオプション(HTTPS:/ /docs.microsoft.com/sql/t-sql/statements/create-table-transact-sql)、そのフォームはデフォルトの制約ではサポートされていません。それは 'DEFAULT'ではなく、他のすべての列制約に対してもサポートされています。どうして?これはT-SQLで本当に尋ねることのできる質問ではありません。 –

答えて

0

あなただけ例えば、あなたがのためにデフォルト値を必要とするフィールドの横のデフォルトを使用する必要があります。

CREATE TABLE myTable (
    table_id  INT NOT NULL, 
    firstColumn NVARCHAR(10), 
    secondColumn INT DEFAULT 0, 
    thirdColumn INT 
) 

それとも、本当に制約を追加したい場合は、あなたがALTER TABLEと、後でそれを追加することができます。

CREATE TABLE myTable (
    table_id  INT NOT NULL, 
    firstColumn NVARCHAR(10), 
    secondColumn INT, 
    thirdColumn INT 
) 

ALTER TABLE myTable ADD CONSTRAINT DEF_secColumn DEFAULT 0 FOR [secondColumn] 

や@イェルーン・mostert

CREATE TABLE myTable (
    table_id  INT NOT NULL, 
    firstColumn NVARCHAR(10), 
    secondColumn INT CONSTRAINT DEF_secColumn DEFAULT 0, 
    thirdColumn INT 
) 
+0

もう1つの構文オプションがありません。これは、最初のインスタンスに名前を追加することです: 'secondColumn INT CONSTRAINT DEF_secColumn DEFAULT 0'。 –

+0

それを考えなかったので、私は編集でそれを追加します、ありがとう。 – MirzaS

関連する問題