《SQL Server 2012 T-SQL基础教程》(人民邮电出版社2013年12月第一版,张洪举、李联国、张昊天译)242页有这样一句话,“SQL Server允许对0比例(无小数)的任意数值类型定义一个名为identity的属性”。
也许是我孤陋寡闻,“0比例”这样的说法还真是第一次见到。好在这本书英文版的pdf网上就有,看了一下,这句话的原文为“SQL Server allows you to define a property called identity for a column with any numeric type with a scale of zero (no fraction).”这样看来,“0比例”是对“a scale of zero”的翻译。第一眼看见,我也不知道“a scale of zero”到底应该怎样翻译,于是在百度上搜了一下“any numeric type with a scale of zero”,第一个页面就是关于PostgreSQL中的数值类型的(http://www.postgresql.org/docs/current/static/datatype-numeric.html),其中有这样一段话,“ We use the following terms below: The scale of a numeric is the count of decimal digits in the fractional part, to the right of the decimal point. The precision of a numeric is the total count of significant digits in the whole number, that is, the number of digits to both sides of the decimal point. So the number 23.5141 has a precision of 6 and a scale of 4. Integers can be considered to have a scale of zero.”应该说这段话把scale解释的很清楚了,scale指的小数点右边数的位数,precision则指的是有效数字的位数。因此“any numeric type with a scale of zero”就是任意小数位数为0的数值类型,即整数。好在原文在括号里面加上了no fraction的解释,要是没有这个解释,估计看见“对0比例的任意数值类型”这样的表述,没有几个人能够懂。
话说回来《SQL Server 2012 T-SQL Fundmentals》真是一本很不错的书,中文版虽然翻译不如意的地方不少,看也还是可以一看的。