【发布时间】:2013-11-24 00:37:30
【问题描述】:
我需要创建一个大型枚举,用作位标志。使用标准加倍,即 1、2、4 来确保任何组合的唯一性都可以,除非我使用 int(20 亿上限)时会用完数字。我也不能使用大整数,因为 Sql server 对按位运算有限制,会截断为 10 个字符。
我想知道的是如何将负数也放入其中,同时仍确保所有组合保持唯一。 (例如 ADO.NET 库中使用的一些枚举值似乎有负整数)。
【问题讨论】:
-
我认为不可能获得带有负值的位标志功能。
-
您可以使用 2 列。 1为位标志,另一个为位表示符号。
-
您需要多少位?您是否需要在 TSQL 中处理这些位,或者所有的摆弄都在应用程序代码中完成,例如C#?有一些关于添加 UDF 来处理大二进制值的讨论here。
标签: c# sql-server tsql enums