sp_help
结果中列出的大小是字节数。VARCHAR
值每个字符使用1个字节,而NVARCHAR
值每个字符使用2个字节。这两者还需要额外的2个字节开销 - 详见下文。因此,因为您正在查看NVARCHAR
列,所以存储100个字符需要200(实际上是202)字节,而VARCHAR
只需要100(实际上是102)字节。
参考资料:
MSDN:char 和 varchar
MSDN:nchar 和 nvarchar存储大小是输入数据的实际长度+2个字节。
存储大小(以字节为单位)是输入数据的实际长度的两倍+ 2个字节。
(我加粗了)
MSDN:sp_help报告有关数据库对象(sys.sysobjects兼容视图中列出的任何对象)、用户定义的数据类型或数据类型的信息。
/------------------------------------------------------------------------\ | 列名 | 数据类型 | 描述 | |-------------+-----------+----------------------------------------------| | 长度 | smallint | 数据类型的物理长度(以字节为单位)。 | \------------------------------------------------------------------------/
sp_help
结果之间的差异,只是说明NVARCHAR
值占用两倍的存储空间。除非我误解了您链接的问题/答案。 - 3N1GM4