我试图更好地理解 SQL 中的数字类型,并且已经读到十进制类型总是需要 17 个字节。但是,MS Docs列出了一个表,指示使用的空间量取决于小数点的精度。所以我尝试使用该datalength
功能对其进行测试。
create table tbl_TestDec(dec1 decimal(19,4), dec2 decimal(20,4), dec3 decimal(9,4))
insert into tbl_TestDec
select 1, 1, 1
select datalength(dec1), datalength(dec2), datalength(dec3) from tbl_TestDec
这输出:
5 5 5
我期待要么9 13 5
要么17 17 17
。我正在使用 SQL Server 2005。所有小数都是 vardecimal 还是我误解了 datalength 函数?