本文介紹了在SQL Server中,何時必須使用NVARCHAR/NCHAR而不是VARCHAR/CHAR?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我們必須使用Unicode類型時是否有規則?
我見過大多數歐洲語言(德語、意大利語、英語等)在同一數據庫中的VARCHAR列中都可以。
我正在尋找類似的東西:
-
如果您有中文–>使用NVARCHAR
如果您有德語和阿拉伯語–>使用NVARCHAR
服務器/數據庫的排序規則如何?
我不想像這里建議的那樣使用Always NVARCHAR
What are the main performance differences between varchar and nvarchar SQL Server data types?
推薦答案
兩個支持率最高的答案都是錯誤的。它不應與存儲不同/多種語言&Quot;有關。支持?
、英文等西班牙語字符,僅支持常用的varchar
字段和Latin1_General_CI_AS
COLLATION
,如
簡寫版本
當COLLATION
確定的ENCODING
不支持所需字符時,請使用NVARCHAR
/NCHAR
。
此外,根據SQL Server的版本,您可以使用特定的COLLATIONs
,如從SQL Server 2019開始提供的Latin1_General_100_CI_AS_SC_UTF8
。在VARCHAR
字段(或整個表/數據庫)上設置此排序規則,將使用UTF-8
ENCODING
存儲和處理該字段上的數據,從而完全支持UNICODE
字符,從而支持它所包含的任何語言。
要完全理解:
要完全理解我將要解釋的內容,必須將UNICODE
、ENCODING
和COLLATION
的概念都非常清楚。如果您不知道,那么首先看一下我對什么是Unicode、編碼、排序規則和UTF-8的簡單而簡明的解釋,以及它們是如何相關的";一節和提供的文檔鏈接。此外,我在這里所說的一切都是特定于Microsoft SQL Server
,以及它如何在char
/nchar
和varchar
/nvarchar
字段中存儲和處理數據。
假設我們想要在MSSQL Server數據庫上存儲一個特殊的文本。這可能是Instagram上的一條評論,因為我喜歡Stackoverflow!