不支持沒(méi)有關(guān)系的,如果通過(guò)程序存入的文字,直接在SQL中打開(kāi)看是亂碼的,但是當(dāng)你在頁(yè)面中輸出,還是會(huì)顯示中文的,沒(méi)多大影響。如果你用的是JSP,就要考慮一下中文問(wèn)題了。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到博望網(wǎng)站設(shè)計(jì)與博望網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋博望地區(qū)。
如果出現(xiàn)這樣的情況,建議不要使用直接在SQL輸入文字的方法。
可以,但是不可以為數(shù)字,或者數(shù)字開(kāi)頭,當(dāng)使用where類似數(shù)據(jù)庫(kù)保留字的時(shí)候,需要使用[where]來(lái)使用。
sql
server支持直接用中文字符作為表中的字段名稱,我用過(guò),但不提倡,應(yīng)為你要考慮到與異購(gòu)數(shù)據(jù)庫(kù)的兼容,和版本兼容。。。
在進(jìn)行sql
server數(shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候,我們發(fā)現(xiàn)有幾種數(shù)據(jù)類型是以“n”開(kāi)頭的,還有幾種對(duì)應(yīng)不是以“n”開(kāi)頭的數(shù)據(jù)類型,我們以nvarchar和varchar為例,看看它們到底有什么區(qū)別。
在進(jìn)行sql
server數(shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候,我們發(fā)現(xiàn)有幾種數(shù)據(jù)類型是以“n”開(kāi)頭的,比如nchar,nvarchar,ntext等,還有幾種對(duì)應(yīng)不是以“n”開(kāi)頭的數(shù)據(jù)類型,比如char,varchar,text等,程序讀寫數(shù)據(jù)庫(kù)的時(shí)候,它們好像沒(méi)什么區(qū)別,是不是用哪種數(shù)據(jù)類型都可以呢?下面我們以nvarchar和varchar為例,看看它們到底有什么區(qū)別。
首先,我們來(lái)看下nvarchar和varchar的官方幫助里的說(shuō)明:
varchar(n)
長(zhǎng)度為
n
個(gè)字節(jié)的可變長(zhǎng)度且非
unicode
的字符數(shù)據(jù),n
必須是一個(gè)介于
1
和
8,000
之間的數(shù)值,存儲(chǔ)大小為輸入數(shù)據(jù)的字節(jié)的實(shí)際長(zhǎng)度,而不是
n
個(gè)字節(jié),所輸入的數(shù)據(jù)字符長(zhǎng)度可以為零,varchar
在
sql-92
中的同義詞為
char
varying
或
character
varying。
nvarchar(n)
包含
n
個(gè)字符的可變長(zhǎng)度
unicode
字符數(shù)據(jù),n
的值必須介于
1
與
4,000
之間,字節(jié)的存儲(chǔ)大小是所輸入字符個(gè)數(shù)的兩倍,所輸入的數(shù)據(jù)字符長(zhǎng)度可以為零,nvarchar
在
sql-92
中的同義詞為
national
char
varying
和
national
character
varying。
看來(lái)兩種數(shù)據(jù)類型是有區(qū)別的,那么該如何選擇兩種數(shù)據(jù)類型呢?
首先,varchar和nvarchar都能存儲(chǔ)漢字,區(qū)別在于:一個(gè)漢字占varchar(2),只占nvarchar(1),而字母只占varchar(1),那么在數(shù)據(jù)庫(kù)字段求長(zhǎng)度的時(shí)候,用varchar就不一定知道它確切有幾個(gè)字符,如果用nvarchar,漢字也是nvarchar(1),字母也是nvarchar(1),那么很容易知道字段的長(zhǎng)度了。
其次,varchar的檢索快于nvarchar,varchar在sql
server中是采用單字節(jié)來(lái)存儲(chǔ)數(shù)據(jù)的,nvarchar是使用unicode來(lái)存儲(chǔ)數(shù)據(jù)的,中文字符存儲(chǔ)到sql
server中會(huì)保存為兩個(gè)字節(jié)(一般采用unicode編碼),英文字符保存到數(shù)據(jù)庫(kù)中,如果字段的類型為varchar,則只會(huì)占用一個(gè)字節(jié),而如果字段的類型為nvarchar,則會(huì)占用兩個(gè)字節(jié)。正常情況下,我們使用varchar也可以存儲(chǔ)中文字符,但是如果遇到操作系統(tǒng)是英文操作系統(tǒng)并且對(duì)中文字體的支持不全面時(shí),在sql
server存儲(chǔ)中文字符為varchar就會(huì)出現(xiàn)亂碼(顯示為??),而且正常情況下,主機(jī)都會(huì)支持中文,所以如果使用varchar來(lái)存儲(chǔ)數(shù)據(jù),在開(kāi)發(fā)階段是發(fā)現(xiàn)不了問(wèn)題的,多數(shù)情況下,在布署的時(shí)候也不會(huì)有問(wèn)題,但是,如果布署的主機(jī)是英文操作系統(tǒng),并且不支持中文,那問(wèn)題就出來(lái)了,所有的varchar字段在存儲(chǔ)中文的時(shí)候都會(huì)變成亂碼(顯示為??),而且一般情況下你不會(huì)知道這是因?yàn)槟悴捎昧隋e(cuò)誤的數(shù)據(jù)類型造成的,你會(huì)試著去裝中文字體,試著去設(shè)置操作系統(tǒng)的語(yǔ)言環(huán)境,這些都不能解決問(wèn)題,唯一能解決問(wèn)題的方法是把數(shù)據(jù)庫(kù)字段的類型改為nvarchar(或者nchar),對(duì)項(xiàng)目管理比較熟悉的朋友應(yīng)該都知道,到布署階段再來(lái)修改數(shù)據(jù)庫(kù)是一件很恐怖的事情。
第三,使用nvarchar的另一個(gè)好處就是在判斷字符串的時(shí)候可以不需要考慮中英文兩種字符的差別,當(dāng)然,使用nvarchar存儲(chǔ)英文字符會(huì)增大一倍的存儲(chǔ)空間,但是在存儲(chǔ)代價(jià)已經(jīng)很低廉的情況下,優(yōu)先考慮兼容性會(huì)給你帶來(lái)更多好處,所以在設(shè)計(jì)的時(shí)候應(yīng)該盡量使用nvarchar來(lái)存儲(chǔ)數(shù)據(jù),只有在你確保該字段不會(huì)存儲(chǔ)中文的時(shí)候,再采用varchar來(lái)存儲(chǔ)。
在中文操作系統(tǒng)下,他們沒(méi)有區(qū)別,都可以使用,在不支持UNICODE的非中文系統(tǒng)下,無(wú)法識(shí)別中文字段名,在支持UNICODE的非中文系統(tǒng)下,如果默認(rèn)字符不是中文,或者沒(méi)有裝載中文,中文字段名將是亂碼.因此,為了你的程序具有良好的兼容性,最好使用英文字段名,而且占有空間小.
SQL Server支持直接用中文字符作為表中的字段名稱,我用過(guò),但不提倡
文章標(biāo)題:SQLSERVER支持中文字符,sql 中文字段
URL網(wǎng)址:http://chinadenli.net/article20/dsihsjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、虛擬主機(jī)、電子商務(wù)、營(yíng)銷型網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)