首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我如何在TSQL中使用枚举,而不是在我的SQL脚本/过程中使用硬编码魔术数字?

我如何在TSQL中使用枚举,而不是在我的SQL脚本/过程中使用硬编码魔术数字?
EN

Stack Overflow用户
提问于 2010-12-15 00:24:24
回答 5查看 2.4K关注 0票数 16

我们的C#代码中有枚举:

public enum JobStatus
{        
  Ready = 0,      
  Running = 1,        
  Cancelling = 2,
}

这些值也存储在数据库字段中,我们有TSQL的lots (主要是存储的procs,以及一些批处理和SSIS),它也处理数据:

SELECT TOP 1 @JobSID = JobSID
FROM Job 
WHERE Status = 0 /* JobStatus.Ready */
ORDER BY SubmitDate ASC

CREATE TABLE ImportCrossEffect(
    /* lots deleted */      
    Source tinyint 
      DEFAULT 1 NOT NULL -- 0: Unknown (default), 1:Imported, 2:Keyed
) 

如何避免在TSQL中硬编码“魔术数字”?

如何消除C#和TSQL端枚举不匹配的风险?

(我已经包含了C#标签,因为我希望解决方案“单一来源”C#和TSQL端的枚举定义)

更新:

我们在数据库中没有包含Enum名称的表,这些值只是存储在很小的int列中。

我希望有一个类似SQL预处理器的东西,它可以将所有枚举“扩展”成“魔术值”。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4441436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档