今天遇到了这个问题,解决方法主要了解以下知识!
1、 varchar:
可变长度的非 Unicode 数据,最长为 8,000 个字符。
2、nvarchar:
可变长度 Unicode 数据,其最大长度为 4,000 字符。
3、char:
固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。
4、nchar
固定长度的 Unicode 数据,最大长度为 4,000 个字符。
5、 char和varchar都是字符串类型的
用Unicode编码的字符串,结果是字符的整数值.
用 Unicode 数据
Unicode 标准为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案。所有的计算机都用单一的 Unicode 标准 Unicode 数据中的位模式一致地翻译成字符。这保证了同一个位模式在所有的计算机上总是转换成同一个字符。数据可以随意地从一个数据库或计算机传送到另一个数据库或计算机,而不用担心接收系统是否会错误地翻译位模式。
Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,‘Michél‘ 是字符串常量而 N‘Michél‘ 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排序规则,主要用于控制比较和区分大小写。为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。Unicode 数据中的每个字符都使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。有关更多信息,请参见使用 Unicode 数据。 在 SQL Server 中的 Unicode 字符串常量处理时必须在前面大写字母 N 开头的所有 Unicode 字符串,在 SQL Server 联机丛书主题"使用 Unicode 数据"中所述。"N"前缀在 SQL 92 标准中,代表国家的语言,而且必须为大写。如果您不要给 N 的 Unicode 字符串常量,SQL Server 会将其转换为当前数据库的非 Unicode 代码页之前,它使用的字符串。 例如:update tableName set ColumnName = N"德文" where ....
时间: 2024-10-19 06:33:31