【发布时间】:2011-09-01 19:25:57
【问题描述】:
假设我想创建一个表,其中包含一些我想包含 64 位无符号整数的列。我可以通过几种不同的方式来解决这个问题,其中一些可能无效或有后果:
- 使用
NUMERIC(20,0)并添加一个检查约束,以确保该值不是负数并且在64 位无符号整数的范围内(即>=0 和 - 创建一个封装此逻辑的 CLR 用户定义类型(并最终包装一个 System.UInt64)。将类型用于列类型和存储过程参数。这种类型是否会给我更大的能力(例如,通过防止无效值被传递到调用站点的存储过程中)?
- 重用 BCL System.UInt64 类型。这可能吗?
我正在寻找熟悉 SQLCLR 功能/集成的人来评估我的想法,并就最佳行动方案发表评论。
谢谢
【问题讨论】:
-
您期望值 > 2^63-1 吗?或者只是不希望值
-
我绝对需要支持价值观> 2**63-1
-
我不知道为什么有人否决了这个问题。这是一个合理的问题。
标签: tsql sql-server-2008 sql-server-2008-r2