4

我正在尝试通过“创建 xml 架构集合”语句将第三方 XSD 方案加载到我的 SQL Server 2008

有一个基于“xs:decimal”的复杂类型,但有限制:

        <xs:totalDigits value="31"/>
        <xs:fractionDigits value="14"/>

XSD 内部。

并且 SQL Server 返回错误

Msg 6960, Level 16, State 2, Line 2
Component 'NAME' is outside of allowed range. Maximum for 'fractionDigits' is 10 and maximum number of digits for non fractional part is 28

但我仍然能够创建一个类型为“numeric(31,14)”的变量

我在 w3c 文档和 MSDN 中都没有发现任何限制。您能否指导我查看有关此限制的一些文档。也许我可以用一些服务包或设置来修复它。

SQL Server 版本:Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 版权所有 (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) o​​n Windows NT 6.1 (Build 7601:服务包 1)


我在 MSDN 上找到了答案(http://msdn.microsoft.com/en-us/library/ms190665(v=sql.100).aspx

SQL Server 不支持可变精度小数。xs:decimal 类型表示任意精度的十进制数。最低限度符合标准的 XML 处理器必须支持至少为 totalDigits=18 的十进制数。SQL Server 支持 totalDigits=38,但将小数位数限制为 10。所有 xs:decimal 实例值都由服务器在内部使用 SQL 类型 numeric (38, 10) 表示。

他们映射 xs:decimal 不是数字类型,而是十进制

4

1 回答 1

2

我在 MSDN 上找到了答案(http://msdn.microsoft.com/en-us/library/ms190665(v=sql.100).aspx

SQL Server 不支持可变精度小数。xs:decimal 类型表示任意精度的十进制数。最低限度符合标准的 XML 处理器必须支持至少为 totalDigits=18 的十进制数。SQL Server 支持 totalDigits=38,但将小数位数限制为 10。所有 xs:decimal 实例值都由服务器在内部使用 SQL 类型 numeric (38, 10) 表示。

他们映射 xs:decimal 不是数字类型,而是十进制

于 2012-11-06T04:52:02.217 回答