溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

數(shù)據(jù)庫(kù)排序規(guī)則的問(wèn)題

發(fā)布時(shí)間:2020-07-13 18:19:21 來(lái)源:網(wǎng)絡(luò) 閱讀:545 作者:fishparadise 欄目:數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)的collation在安裝使用默認(rèn)就已經(jīng)很好了。比如簡(jiǎn)體中文環(huán)境下,安裝SQL Server時(shí),默認(rèn)是Chinese_PRC_CI_AS,英文環(huán)境下是SQL_Latin1_General_CP1_CI_AS。 在大多數(shù)據(jù)情況下,默認(rèn)的選項(xiàng)已經(jīng)其中上滿(mǎn)意我們的需求,但如果要支持多國(guó)語(yǔ)言,那么就只能選擇支持unicode編碼的SQL_Latin1_General_CP1_CI_AS,否則會(huì)有亂碼,而應(yīng)用程序查詢(xún)/更新數(shù)據(jù)也需要在前加N作為unicode字符的標(biāo)志。我想很多人都沒(méi)有太留意這問(wèn)題吧。


其中一個(gè)例子是實(shí)例級(jí)別和數(shù)據(jù)庫(kù)級(jí)別的collation不一致,也可能造成一些意想不到的問(wèn)題。比如所有用戶(hù)數(shù)據(jù)庫(kù)都共享的tempdb,如果有用戶(hù)數(shù)據(jù)庫(kù)的collation與tempdb不同,使用臨時(shí)表或表變量可能會(huì)出現(xiàn)問(wèn)題。


另一個(gè)例子如下(SQL Server 2008R2),登錄名test1映射的數(shù)據(jù)庫(kù)的collation與實(shí)例的collation不一致,打開(kāi)登錄名的屬性——安全對(duì)象,報(bào)了個(gè)468的錯(cuò)誤提示。


數(shù)據(jù)庫(kù)排序規(guī)則的問(wèn)題

Figure-1: 登錄名的屬性


數(shù)據(jù)庫(kù)排序規(guī)則的問(wèn)題

Figure-2: 報(bào)468錯(cuò)誤


所以最好還是數(shù)據(jù)庫(kù)與實(shí)例的collation一例。在數(shù)據(jù)庫(kù)規(guī)劃時(shí),建議全部使用SQL_Latin1_General_CP1_CI_AS,雖然應(yīng)用程序要加N,但為了以后的擴(kuò)展,還是值得這樣做的。



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI