c# - 在 SQL Server 中处理 'Enumerations' 有哪些不同的方法?

标签 c# sql-server global-variables enumeration

我们目前在存储过程的顶部定义了一个常量列表(大多数这些对应于我们在业务层中定义的枚举),如下所示:

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/

相关文章:

c# - 如何在 C# 类库项目 (VS2012) 中嵌入和使用 .txt 文件作为资源?

c# - 异步计时问题

c# - C# 中枚举的行为

sql-server - SQL Server 2008 全文搜索 (FTS) 与 Lucene.NET

sql - 无法将一个或多个字符从 XML 转换为目标排序规则

c - 读取全局标志不适用于 CUDA 中的 CPU>GPU 数据交换

ios - iOS 中的全局变量

php - 为什么 $_GET 在头函数中不起作用?

c# - 使用 .NET 与 MS Excel 进行 COM 互操作的(免费)替代方案是什么(如果有的话)?

sql-server - SQL Server 配置管理器 Express 2012