Sql server SQL Server默认值列表

Sql server SQL Server默认值列表,sql-server,default,Sql Server,Default,如何在SQL Server 2008 R2列中创建默认值列表?我希望列具有默认值easy、medium和expert 与MySql不同,SQL Server没有可以轻松约束列的枚举类型 与MySql不同,SQL Server没有枚举类型,您可以轻松地约束列 最接近的方法是使用。举个例子,想象一个不同数学测试的表格,难度等级必须是“简单”、“中等”或“专家” CREATE TABLE Test ( MathTestID smallint NOT NULL, DifficultyRa

如何在SQL Server 2008 R2列中创建默认值列表?我希望列具有默认值easy、medium和expert

与MySql不同,SQL Server没有可以轻松约束列的枚举类型


与MySql不同,SQL Server没有枚举类型,您可以轻松地约束列


最接近的方法是使用。

举个例子,想象一个不同数学测试的表格,难度等级必须是“简单”、“中等”或“专家”

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

举个例子,想象一张不同数学测试的表格,难度等级必须是“简单”、“中等”或“专家”

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

“默认值”是什么意思?允许的值,比如MySQL枚举?您所说的“默认值”是什么意思?允许的值,比如MySQL枚举?除了“但它会自动在PHPMyAdmin中生成那些漂亮的小下拉列表”之外,我看不到枚举有多少实际好处。@Tomalak-同意。我通常只使用查找表和FK约束。是的。这也将导致“无需对数据库进行结构性更改以允许另一个值”,从而导致“未经授权的帐户(即web服务器)可以添加新值”,除此之外,还包括更适合i18n或索引(当然还有“自由选择基础数据类型和值”)“但是它自动地在PHPMyAdmin中创建了这些漂亮的小下拉列表”无论如何,我看不到ENUM有多大的实际好处。@Tomalak-同意。我通常只使用查找表和FK约束。是的。这也会导致“无需对数据库进行结构更改以允许另一个值”,这反过来会导致“无特权帐户”(即web服务器)可以添加新的值”,除此之外,例如更适合i18n或索引(当然还有“自由选择基础数据类型和值”).谢谢!我在看,但不知道如何实施。再次非常感谢!谢谢!我在看,但不知道如何实施。再次非常感谢!