數據庫的排序規則是個頭疼的話題,常見使用的地方:
1.安裝數據指定
2.建立數據庫指定
3.建表指定
4.查詢語句指定。
一般1.安裝時候指定,一定要指定對,中文版和英文版是不一樣的。2.生產服務器和測試服務器服務器數據庫版本不一,考慮影響,考慮面向使用的用戶,以及現有數據的字符集。3.查詢語句也要指定,如果字符集不一樣,必須強制指定同一種,語句才能執行。遇到過在一些連接條件的時候必須知道一種字符集纔能有效 否則會提示字符集不統一還有就是數據庫導入,從一個庫的一個表到另外一個庫的一個表,如果字符集不一樣,是到不過去,比如用SSIS 一般是varchar 字段報錯,在select 語句中用函數convert一下,在目標中換成nvarchar。
區別看建表語句:
CREATE TABLE [dbo].[excel_read]
(
[id] [int] NULL,
[name] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
INSERT INTO dbo.excel_read
( id, name )
VALUES ( 0, -- id - int
N'EXCEL' -- name - nvarchar(100)
)
INSERT INTO dbo.excel_read
( id, name )
VALUES ( 0, -- id - int
N'excel' -- name - nvarchar(100)
)
SELECT * FROM excel_read WHERE name='Excel'
對於[name] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL
Chinese_PRC:
prc(PRC),即中華人民共和國 的英語縮寫(The People's Republic of China)。
CI:i ignore 忽略 C 是鍵盤上大寫。
對於大小寫就有2種可能
對於Chinese_PRC_CI_AS忽略大小寫
對於不忽略大小寫 查詢的結果就不一定。