Sql-Server
在表格中插入特殊字元
我有幾個字元被替換為
?
. 你如何在表格中保留原始字元?我要插入的字元是ɬ
; 帶腰帶的拉丁文小寫字母 L。是否可以將此字元添加到表格中?
只要滿足以下任一條件,就可以添加該字元:
- 目標列是
NCHAR
//NVARCHAR
(也可以使用,但自 SQL Server 2005 發布以來已被棄用XML
,NTEXT
因此不要使用它),或者 2. 目標列是
CHAR
/VARCHAR
並且該列的排序規則使用支持相關字元的程式碼頁。因此,請確保執行以下操作:
- 為字元串加上前綴
N
(如果目前數據庫的預設排序規則使用支持該字元的程式碼頁,則不需要,但有助於消除數據庫的預設排序規則成為可能導致此問題的因素 - 原因是如果目前數據庫的預設排序規則使用不支持該字元的程式碼頁,然後將其轉換為“最佳匹配”匹配,或者?
如果找不到最佳匹配匹配,則它被保存在變數或字元串文字中) .- 同樣,如果這是通過參數進入儲存過程或參數化查詢批處理並且參數類型為
CHAR
orVARCHAR
,則目前數據庫的預設排序規則不使用支持該字元的程式碼頁,因此請切換到使用NVARCHAR
/NCHAR
作為參數數據類型。- 如果目標列是
VARCHAR
/CHAR
,則確保該列的排序規則使用支持該字元的程式碼頁。- 如果目標列是
VARCHAR
/CHAR
並且您找不到使用支持相關字元的程式碼頁的排序規則,那麼您需要將該列轉換為NVARCHAR
/NCHAR
以便它可以儲存任何字元。 (這對 OP 有效)有關使用排序規則的更多資訊,請訪問:Collations.info