相当于MySQL枚举数据types的SQL Server?

SQL Server 2008有一个像MySQL的enum数据types?

它不。 有一个模糊的等价物:

 mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown')) 

我在这里find的最好的解决scheme是创build一个可能的值作为主键的查找表,并创build查找表的外键。

恕我直言,查找表是要走的路,具有参照完整性。 但是,只有当你通过下面的例子来避免“邪恶的魔法数字”: 使用T4从数据库查找表生成枚举

玩的开心!

 CREATE FUNCTION ActionState_Preassigned() RETURNS tinyint AS BEGIN RETURN 0 END GO CREATE FUNCTION ActionState_Unassigned() RETURNS tinyint AS BEGIN RETURN 1 END -- etc... 

性能至关重要,仍然使用硬性价值。

当我想在SQL Server中实现枚举时find了这个有趣的方法。

下面在链接中提到的方法是相当有吸引力的,考虑到所有的数据库枚举需求可以用2个中心表来满足。

http://blog.sqlauthority.com/2010/03/22/sql-server-enumerations-in-relational-database-best-practice/