nvarchar是什么意思?

SQL Server中的char、nchar、varchar和nvarchar有什么区别?


当前回答

再补充一点: Nchar -在数据中添加尾随空格。 Nvarchar -不向数据添加尾随空格。

因此,如果你要通过'nchar'字段过滤数据集,你可能想要使用RTRIM来删除空格。 如。 nchar(10)字段名为BRAND存储单词NIKE。 它在单词右边增加了6个空格。 因此,在筛选时,表达式应该是: RTRIM(Fields!BRAND.Value) = "NIKE"

希望这能帮助一些人,因为我刚刚还在和它斗争!

其他回答

Nchar和char的操作方式几乎完全相同,nvarchar和varchar也是如此。它们之间唯一的区别是nchar/nvarchar存储Unicode字符(如果你需要使用扩展字符集,这是必不可少的),而varchar不存储。

因为Unicode字符需要更多的存储空间,nchar/nvarchar字段占用了两倍的空间(例如,在早期版本的SQL Server中,nvarchar字段的最大大小是4000)。

这个问题是这个问题的翻版。

nchar(10)是一个长度为10的固定长度的Unicode字符串。nvarchar(10)是一个可变长度的Unicode字符串,最大长度为10。通常,如果所有数据值都是10个字符,则使用前者;如果长度不同,则使用后者。

Nchar比nvarchar需要更多的空间。

eg,

一个nchar(100)将始终存储100个字符,即使你只输入5 剩下的95个字符将用空格填充。 在nvarchar(100)中存储5个字符将节省5个字符。

NVARCHAR可以存储Unicode字符,每个字符占用2字节。

只是为了澄清…或者总结一下……

nchar和nvarchar可以存储Unicode字符。 char和varchar不能存储Unicode字符。 Char和nchar是固定长度的,即使你没有用完所有的空间,也会为你指定的字符数量保留存储空间。 Varchar和nvarchar是可变长度的,只会为你存储的字符占用空间。它不会像char或nchar那样预留存储空间。

nchar和nvarchar将占用两倍的存储空间,因此只有在需要Unicode支持时才使用它们可能是明智的。