为什么SQL Server给我的列数是我要求的两倍?

时间:2016-08-26 19:32:25

标签: sql-server azure

在为临时表执行CREATE TABLE后,我正在验证该字段的大小是否适合我需要使用的内容。

令我惊讶的是,SQL Server(Azure SQL)报告该表现在具有两倍的大小。这是为什么?

这是我按顺序执行的:

CREATE TABLE #A ( Name NVARCHAR(500) not null ) 
EXEC tempdb..sp_help '#A'

double the size

2 个答案:

答案 0 :(得分:3)

NVARCHAR每个字符显示2个字节。因此,如果大小为500,则显示大小为1000.它是存储unicode格式数据。

答案 1 :(得分:3)

SQL Server中的NVARCHAR始终存储每个字符为2个字节。

因此,如果您要求500个字符(每个2个字节),显然这会导致列大小为1000个字节。

在SQL Server中永远都是这样的 - 这不是新的或Azure特定的。