我正在創建一個阿拉伯語網站,創建數據庫並開始在其中寫入阿拉伯語文本後,它只顯示???? ,所以我將我的數據庫從SQL_Latien更改爲Arabic_CI_AISQL整理問題
但我仍然收到????在我的領域,當我檢查該字段的性質,我發現它SQL_Latien,它不會改變
所以我應該怎麼做,而不盡快重複建設數據庫
請回復您解決這個問題可以
在此先感謝
我正在創建一個阿拉伯語網站,創建數據庫並開始在其中寫入阿拉伯語文本後,它只顯示???? ,所以我將我的數據庫從SQL_Latien更改爲Arabic_CI_AISQL整理問題
但我仍然收到????在我的領域,當我檢查該字段的性質,我發現它SQL_Latien,它不會改變
所以我應該怎麼做,而不盡快重複建設數據庫
請回復您解決這個問題可以
在此先感謝
數據庫排序規則只是新列的默認設置。
要更改現有列的排序規則,您必須登錄alter table
。例如:
alter table YourTable alter column col1 varchar(10) collate Arabic_CI_AI
排序順序是排序時字符出現的順序(即使用'ORDER BY'子句)。不同的排序規則會導致不同的排序順序。
這顯然不是你正在尋找的。您的問題是存儲和檢索ASCII範圍之外的UNICODE字符(即阿拉伯字符)。爲此,存儲此數據的數據類型必須支持UNICODE,而不是ASCII。簡單地說,定義列時,請使用數據類型nchar,nvarchar和ntext,而不是char,varchar和text。
這是否也適用於服務器/實例的默認設置並單獨應用於數據庫?如果是這樣,我建議在兩個地方更改排序順序,然後更新現有的表。 – MatBailie 2011-04-04 14:46:54
@Dems:新數據庫從'model'數據庫中複製。我不認爲有一個服務器範圍的默認排序規則。 – Andomar 2011-04-04 19:48:19
非常感謝您節省我的時間。我將排序規則設置從拉丁文更改爲Arabic_CI_AI,之後我也得到了?在我的桌子上插入阿拉伯文。我改變表後它工作正常。再次感謝Andomar – Joseph 2013-04-16 13:17:15