我正在 SQL Server 2008 中创建一个新的 SP(存储过程),它会给我一个错误,即
Specified column precision 52 is greater than the maximum precision of 38
我不明白为什么会发生此错误?
请让我解释为什么会发生此错误以及如何解决此错误。
我正在 SQL Server 2008 中创建一个新的 SP(存储过程),它会给我一个错误,即
Specified column precision 52 is greater than the maximum precision of 38
我不明白为什么会发生此错误?
请让我解释为什么会发生此错误以及如何解决此错误。
系统告诉你错误发生的原因。
您要求的精度为 52,但最大默认精度仅为 38。因此系统无法为您提供您要求的精度。
请参阅:http: //msdn.microsoft.com/en-us/library/ms190476.aspx
“在 SQL Server 中,数值和十进制数据类型的默认最大精度为 38。在 SQL Server 的早期版本中,默认最大值为 28。”
我弄错了,这真的是一个愚蠢的错误,是我错误地产生的。我声明了一个数据类型为十进制的参数,并且错误地使用了十进制的长度 52。所以它给出了一个错误,因为十进制最大长度 id 为 38。
您正在尝试放置一个比表中存储的精度更高的变量。
检查您的表结构或您的语句/程序。
对于正在寻找使用休眠解决类似问题的解决方案的其他人,请检查您的映射文件。
*.hbm.xml
就我而言,我在休眠映射文件 ( )中将精度更改为 38 。