kevorski Asked: 2018-06-01 10:25:17 +0800 CST2018-06-01 10:25:17 +0800 CST 2018-06-01 10:25:17 +0800 CST 在表格中插入特殊字符 772 我有几个字符被替换为?. 你如何在表格中保留原始字符?我要插入的字符是ɬ; 带腰带的拉丁文小写字母 L。是否可以将此字符添加到表格中? sql-server t-sql 1 个回答 Voted Best Answer Solomon Rutzky 2018-06-01T10:28:59+08:002018-06-01T10:28:59+08:00 只要满足以下任一条件,就可以添加该字符: 目标列是NCHAR// NVARCHAR(也可以使用,但自 SQL Server 2005 发布以来已被弃用XML,NTEXT因此不要使用它), 或者 目标列是CHAR/VARCHAR 并且该列的排序规则使用支持相关字符的代码页。 因此,请确保执行以下操作: 为字符串加上前缀N(如果当前数据库的默认排序规则使用支持该字符的代码页,则不需要,但有助于消除数据库的默认排序规则成为可能导致此问题的因素 - 原因是如果当前数据库的默认排序规则使用不支持该字符的代码页,然后将其转换为“最佳匹配”匹配,或者?如果找不到最佳匹配匹配,则它被保存在变量或字符串文字中) . 同样,如果这是通过参数进入存储过程或参数化查询批处理并且参数类型为CHARor VARCHAR,则当前数据库的默认排序规则不使用支持该字符的代码页,因此请切换到使用NVARCHAR/NCHAR作为参数数据类型。 如果目标列是VARCHAR/ CHAR,则确保该列的排序规则使用支持该字符的代码页。 如果目标列是VARCHAR/CHAR并且您找不到使用支持相关字符的代码页的排序规则,那么您需要将该列转换为NVARCHAR/NCHAR以便它可以存储任何字符。 (这对 OP 有效) 有关使用排序规则的更多信息,请访问:Collations.info
只要满足以下任一条件,就可以添加该字符:
目标列是
NCHAR
//NVARCHAR
(也可以使用,但自 SQL Server 2005 发布以来已被弃用XML
,NTEXT
因此不要使用它),或者
目标列是
CHAR
/VARCHAR
并且该列的排序规则使用支持相关字符的代码页。因此,请确保执行以下操作:
N
(如果当前数据库的默认排序规则使用支持该字符的代码页,则不需要,但有助于消除数据库的默认排序规则成为可能导致此问题的因素 - 原因是如果当前数据库的默认排序规则使用不支持该字符的代码页,然后将其转换为“最佳匹配”匹配,或者?
如果找不到最佳匹配匹配,则它被保存在变量或字符串文字中) .CHAR
orVARCHAR
,则当前数据库的默认排序规则不使用支持该字符的代码页,因此请切换到使用NVARCHAR
/NCHAR
作为参数数据类型。VARCHAR
/CHAR
,则确保该列的排序规则使用支持该字符的代码页。VARCHAR
/CHAR
并且您找不到使用支持相关字符的代码页的排序规则,那么您需要将该列转换为NVARCHAR
/NCHAR
以便它可以存储任何字符。 (这对 OP 有效)有关使用排序规则的更多信息,请访问:Collations.info