--查看表中所有行的分配情况
select c.name as column_name, c.column_id,
pc.max_inrow_length, pc.system_type_id, pc.leaf_offset
from sys.system_internals_partition_columns pc
inner join sys.partitions p
on p.partition_id = pc.partition_id
inner join sys.columns c
on c.column_id = pc.partition_column_id and
c.object_id = p.object_id
where p.object_id = object_id('tb_test');
/*
column_name column_id max_inrow_length system_type_id leaf_offset
------------- ----------- ---------------- -------------- -----------
col1 1 16 36 4
col2 2 8000 239 20
col3 3 8000 231 -1
col4 4 8000 231 -2
从以上数据我们可以看出,leaf_offset是列数据在行内相对于行头的偏移量
即:col1从4字节开始,到19字节结束,共16字节。
col2从20字节开始,因为是定长数据,长度为8000字节
col3、col4属于变长数据,实际的长度因不同的记录不同而不同,这里
不能指定准确的偏移量,-1、-2表示的是第一变长列和第二变长列。
被MSSQL耍了-CSDN社区