CONVERT()导致此问题的原因是什么?
考虑以下两个语句: PRINT CONVERT(NUMERIC(38, 0), 0x0100000001, 0); PRINT CONVERT(NUMERIC(38, 0), 0x0100010001, 0); 两条语句都返回-1; 那不是很错误,因为第二个二进制值比第一个值高十进制65,536,不是吗? 当然这不能归因于沉默的截断吗? 如果我运行以下语句: PRINT CONVERT(NUMERIC(38, 0), 0x00000001, 0); PRINT CONVERT(NUMERIC(38, 0), 0x00010001, 0); 出现以下错误: Msg 8114, Level 16, State 5, Line 1 Error converting data type varbinary to numeric. 我如何诊断这里发生了什么? 我正在SQL Server 2012 v11.0.5058上运行它。在SQL Server 2008 R2 SP2,SQL …