Vac*_*ano 6 t-sql sql-server enumeration sql-server-2008 enumerated-types
SQL Server中是否存在某种机制以允许类似Enumerated类型的功能?
例如,如果我有一个名为"UpdateStatus"的列,它通常会设置单字母值,如下所示:
这可能等同于很多事情.这导致了混乱.另一种方法是让它像这样的字符串列:
但这有其自身的问题.最终有人会写这样的东西:( where UpdateStatus = 'Initalized'
拼写错误).另外,我听说扼杀弦乐并不是那么高效.
那么,是否有任何类型的SQL Server枚举类型可以帮助解决这个问题?基本上我正在寻找编译时检查被比较的值(即"已初始化")是值列表的一部分.
我正在使用SQL Server 2008.
Phi*_*rie 10
为什么不包含包含代码和描述的查找表.为此查找表创建外键将导致仅使用有效代码.
除了查找表(FK),在简单的情况下,您可以使用检查约束:
CREATE TABLE my_table (
UpdateStatus VARCHAR2(11)
CHECK( UpdateStatus IN ('Downloaded', 'Deleted', 'Updated', 'Initialized'))
)
Run Code Online (Sandbox Code Playgroud)