如何在SQL中使用枚举类似字符串?

时间:2014-10-10 02:23:03

标签: sql-server sql-server-2008 tsql sql-server-2008-r2

如何在ENUM中添加SQL Server个字符串?我知道SQL服务器没有ENUM但是如何拥有这种机制?请为以下2个方案建议。

  1. 不是真的ENUM是必需的,而只需要一个字符串?
  2. 带有数字表示的真ENUM是requreid?

2 个答案:

答案 0 :(得分:2)

可以使用Check Constraint在sql server中实现 ENUM

CREATE TABLE Direction
 (
   types varchar(10) NOT NULL CHECK (types IN('North', 'South', 'East','West'))
 )

在方向表中,它只接受提到的值

答案 1 :(得分:0)

如果您的问题像persisting your Enum values inside SQL Server一样简单[实际上存储数据库在这种情况下并不重要]那么我会为您提供一些建议。将您的枚举的int表示存储在数据库中,并追求幸福的生活:

假设您的班级中有一个存储电话号码类型的字段:

public enum ContactType

public enum ContactType
{
    Home = 0,
    Mobile = 1
} 

如果您被要求提供额外的条目,每次都要更换数据库,您会怎么做?不好! 您只需将其添加到您的代码中的枚举和问题排序。