SQL Server 2008是否有像MySQL的enum
这样的数据类型?相当于MySQL枚举数据类型的SQL Server?
回答
它没有。有一个模糊等价:
mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))
CREATE FUNCTION ActionState_Preassigned()
RETURNS tinyint
AS
BEGIN
RETURN 0
END
GO
CREATE FUNCTION ActionState_Unassigned()
RETURNS tinyint
AS
BEGIN
RETURN 1
END
-- etc...
表现在哪里的问题,仍然使用硬值。
恕我直言,查找表是参考完整性的方法。 但只有当你通过下面这个例子来避免“邪恶的魔法数字”时: Generate enum from a database lookup table using T4
玩得开心!
当我想在SQL Server中实现枚举时找到了这个有趣的方法。
考虑到所有的数据库枚举需求都可以用2个中心表来满足,下面链接中提到的方法非常有吸引力。
这是一种反模式的变体,被称为“one true (查找表”。正确的做法是为每个枚举类型使用单独的表并使用外键(如果您需要查找,可能不是“纯”枚举的情况)。 – 2014-09-04 13:22:41
链接页面上的注释为每个“枚举”使用单独的表格提供了很好的备份,而不是这个答案指定的内容 – 2015-04-13 20:14:06
大多数人会很肯定地忽略这种设计是非常有趣的,但作者将他的文章命名为“最佳实践” 。 – 2016-11-16 13:11:17
- 1. SQL Server 2008中的枚举类型?
- 2. 这是MySQL枚举数据类型的适当使用吗?
- 3. Python的枚举相当于
- 4. SQL alter names - 枚举数据类型..?
- 5. Elasticsearch - 枚举数据类型
- 6. 其他相当于枚举?
- 7. 如何枚举sql server的数据库
- 8. SQL Server来Netezza数据类型相当于
- 9. 枚举类型和MySQL
- 10. SMO异常枚举SQL Server数据库
- 11. 在SQL Server数据库中枚举
- 12. 位数据类型来枚举类型映射从数据库SQL Server中的数据集2008
- 13. sql server枚举当前会话变量
- 14. 映射枚举类具有相同枚举类型
- 15. 相当于SQL Server的MySQL计算列
- 16. 相当于MySQL数据和时间数据类型的C#
- 17. TinyInt作为枚举的数据类型
- 18. C#枚举的数据类型
- 19. EMF中的枚举数据类型
- 20. 相当于C++枚举的Ruby/Rails
- 21. 类型枚举
- 22. Ç枚举(枚举类型定义)的
- 23. Node.js native枚举中的枚举类型
- 24. 具有相同值的枚举类型
- 25. 在枚举查找相关类型的数据
- 26. sql server相当于mysql,其中
- 27. 更改mysql中的枚举类型
- 28. MySQL的枚举数据类型可能有多少个值?
- 29. 使用枚举数据类型
- 30. 虚拟数据类型/枚举
如何做到这一点的SSMS? – EgoPingvina 2017-10-03 19:49:15
@EgoPingvina:你应该在一个问题中提出这个问题,而不是评论。 – chaos 2017-10-18 19:51:38