經(jīng)常用varchar總發(fā)現(xiàn)從access數(shù)據(jù)庫直接轉(zhuǎn)到mssql數(shù)據(jù)庫默認(rèn)的都是nvarchar和ntext所以,找了一下,原來有這個(gè)說法。
問:
sql server中的varchar和Nvarchar有什么區(qū)別啊,varchar好像是一個(gè)英文和一個(gè)漢字都站兩個(gè)字節(jié),而Nvarchar則是一個(gè)英文占一個(gè)字節(jié),漢字占兩個(gè)字節(jié)。可是這個(gè)對asp程序有什么影響?
答:
varchar(n)
長度為 n 個(gè)字節(jié)的可變長度且非 Unicode 的字符數(shù)據(jù)。n 必須是一個(gè)介于 1 和 8,000 之間的數(shù)值。存儲大小為輸入數(shù)據(jù)的字節(jié)的實(shí)際長度,而不是 n 個(gè)字節(jié)。
nvarchar(n)
包含 n 個(gè)字符的可變長度 Unicode 字符數(shù)據(jù)。n 的值必須介于 1 與 4,000 之間。字節(jié)的存儲大小是所輸入字符個(gè)數(shù)的兩倍。
兩字段分別有字段值:我和coffee
那么varchar字段占2×2+6=10個(gè)字節(jié)的存儲空間,而nvarchar字段占8×2=16個(gè)字節(jié)的存儲空間。
如字段值只是英文可選擇varchar,而字段值存在較多的雙字節(jié)(中文、韓文等)字符時(shí)用nvarchar