可能重复:
Does SQL Server 2005 have an equivalent to MySql’s ENUM data type?
有没有办法在SQL Server 2005中定义ENUM?
我有固定的值,我需要在程序和函数中使用。
答案 0 :(得分:5)
使用一个或多个标量UDF?
每个常数一个:
dbo.CONST_Bicycle
返回1 dbo.CONST_Car
返回2 每个枚举一个:
dbo.CONST_Types('Bicycle')
返回1 dbo.CONST_Types('Car')
返回2 或者使用ID为每个枚举名称的表
使用客户端枚举来匹配它(可能与表解决方案的验证)
没有快速或干净的方式来执行此操作,就像在.net中一样(根据您的评论)。
答案 1 :(得分:1)
您可能希望查找表名为LuVehicle,列为Id和Name。
值可能看起来像
1,Bicycle
2,Car
3,MotorCycle
然后,您可以在数据库表中的任何位置使用Id列的foriegn键。
要检索值的确切名称,您可以使用LuVehicle表进行简单的内部联接。像这样的东西
select empname, vehicleId, LuVehicle.Name from employees, LuVehicle
where employees.vehicleId = LuVehicle.Id
答案 2 :(得分:0)
SQL Server支持用户定义的数据类型。您可能希望对CREATE TYPE (Transact-SQL)执行某些操作。但我不知道即使可以通过用户定义的数据类型,也不知道它的优点和缺点。可能是其他人会对它有更多的启发。