您在SQL Server中使用什么数据类型进行枚举

pka*_*rio 3 sql-server enums

当我们将枚举从C#序列化到SQL Server时,我们使用NCHAR(3)数据类型,其中包含枚举值的每个值的助记符值.这样我们就可以轻松阅读SELECT qry.

如何将枚举保存到数据库中?

你使用什么数据类型?

Kev*_*Kev 6

更好的方法是存储为int.这样你就可以从数据库中反序列化/强制转换回正确的枚举值.

如果将来可能会更改枚举,则使用显式值,例如

public enum ActionType
{
  Insert = 1,
  Update = 2,
  Delete = 3
}
Run Code Online (Sandbox Code Playgroud)

存储作为助记符的实用性必然会导致您的冲突取决于您的助记符生成算法?

  • 习惯这样做.随着数据库变得复杂,查询越来越难以理解.没有大量内连接,结果集很难解释.在c#中使用枚举而不是整数的原因完全相同 (4认同)