我们目前在存储过程的顶部定义了一个常量列表(大多数这些对应于我们在业务层中定义的枚举),如下所示:
DECLARE @COLOR_RED INT = 1
DECLARE @COLOR_GREEN INT = 2
DECLARE @COLOR_BLUE INT = 3
但是这些对于许多存储过程来说经常会重复,所以有很多重复。
如果过程只需要一个或两个常量,我使用的另一种技术是将它们作为参数传递给存储过程。 (对常量值使用相同的大写约定)。这样我就确定了业务层和数据层的值是一致的。此方法不适用于很多值。
我还有哪些其他选择?
我使用的是 SQL Server 2008,如果有任何不同,我还使用 C#。
更新 因为我使用的是 .Net,用户定义 (CLR) 类型有什么方法可以提供帮助吗?
最佳答案
这可能会引起争议:我的看法是不要在 T-SQL 中使用枚举。 T-SQL 并不是真正按照使枚举有用的方式设计的,就像它们在其他语言中一样。对我来说,在 T_SQL 中,它们只是增加了工作量和复杂性,而没有在其他地方看到的好处。
关于c# - 在 SQL Server 中处理 'Enumerations' 有哪些不同的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1198763/