当我们必须使用 Unicode 类型时有什么规则吗?
我发现大多数欧洲语言(德语、意大利语、英语等)在同一个数据库的 VARCHAR 列中都可以正常工作。
我正在寻找类似的东西:
- 如果你有中文-->使用NVARCHAR
- 如果您有德语和阿拉伯语 --> 使用 NVARCHAR
服务器/数据库的排序规则怎么样?
我不想像这里建议的那样总是使用 NVARCHARvarchar 和 nvarchar SQL Server 数据类型之间的主要性能差异是什么?
您想要使用 NVARCHAR 的真正原因是当您有不同的同一列中的语言,您需要在 T-SQL 中寻址而不解码,您希望能够在 SSMS 中“本机”查看数据,或者您希望在 Unicode 上进行标准化。
如果将数据库视为哑存储,则完全可以在 VARCHAR 中存储宽字符串和不同(甚至可变长度)编码(例如 UTF-8)。当您尝试编码和解码时,问题就会出现,特别是当不同行的代码页不同时。它还意味着 SQL Server 将无法轻松处理数据,以便在 T-SQL 中对(可能可变的)编码列进行查询。
使用 NVARCHAR 可以避免这一切。
对于任何包含用户输入数据且相对不受约束的列,我建议使用 NVARCHAR。
我建议对任何自然键列(如车辆牌照、SSN、序列号、服务标签、订单号、机场呼号等)使用 VARCHAR,这些自然键通常由标准、立法或惯例定义和约束。 VARCHAR 也用于用户输入,并且非常受限制(如电话号码)或代码(ACTIVE/CLOSED、Y/N、M/F、M/S/D/W 等)。绝对没有理由为此使用 NVARCHAR。
因此,对于一个简单的规则:
保证受到约束时的 VARCHAR
否则为 NVARCHAR
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)