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