2011-01-08 14 views
1

SQL Server 2008 R2の列に既定値の一覧を作成するにはどうすればよいですか?私は、列が、簡単、中、専門のデフォルト値を持つようにしたい。SQL Serverの既定値の一覧

+0

あなたは、「デフォルト値」とはどういう意味ですか? MySQL ENUMのような許容値ですか? – Tomalak

答えて

1

アンたとえば、いずれかの「簡単」、「中」または「専門家」でなければなりません難易度の評価と異なる数学のテストのテーブルを想像

CREATE TABLE Test 
(
    MathTestID smallint NOT NULL, 
    DifficultyRating varchar(6) NOT NULL, 
    CHECK (DifficultyRating In ('Easy', 'Medium','Expert')) 
) 

INSERT INTO Test 
VALUES (1, 'Easy') //Works... 

INSERT INTO Test 
VALUES (1, 'Medium') //Works... 

INSERT INTO Test 
VALUES (1, 'Expert') //Works... 

INSERT INTO Test 
VALUES (1, 'Genius') //Fails...INSERT statement conflicted with CHECK constraint 
+0

ありがとう!私はそれを見ていましたが、実装方法はわかりませんでした。再度ありがとう! –

3

SQL Serverには、MySqlと異なり、列を簡単に制約できる列挙型はありません。

最も近いのはCHECK constraintです。

+1

「ただし、PHPMyAdminでこれらの小さなドロップダウンを自動的に行う」以外は、とにかくENUMのそれほど大きな利益は見られません。 – Tomalak

+1

@トマラク - 同意。私は通常単にルックアップテーブルとFK制約を使用します。 – Oded

+0

はい。それはまた、「別の値を許可するのに必要な構造上のデータベースの変更はありません」という結果につながり、「権限を持たないアカウント(つまりWebサーバー)が新しい値を追加できるようになります。もちろん「基礎となるデータタイプと価値の自由な選択」も含まれます)。 – Tomalak

関連する問題