我已经阅读了有关varchar和nvarchar的全部内容。但是我没有看到我认为是一个简单问题的答案。您如何确定nvarchar列的长度?对于varchar,这非常简单:例如,我的描述可以包含100个字符,因此我定义了varchar(100)。现在,我被告知我们需要国际化和支持任何语言。这是否意味着我需要将Description列更改为nvarchar(200),即只需将长度加倍?(并且我暂时忽略了与国际化有关的所有其他问题。)
这么简单吗?
通常,它与varchar真实情况相同。该数字仍然是最大字符数,而不是数据长度。
varchar
nvarchar(100) 允许100个字符(在SQL Server中可能消耗200个字节)。
nvarchar(100)
您可能要考虑到这样一个事实,即不同的文化可能需要更多的角色来表达同一件事。
但是,如果使用SC排序规则(支持补充字符),则是一个例外。在这种情况下,单个字符可能最多占用4个字节。
SC
因此,最糟糕的情况是将声明的字符值加倍。