慕碼人8056858
2019-11-23 15:15:30
varchar(500)比varchar(8000)更有優(yōu)勢嗎?我已經(jīng)在MSDN論壇和這里讀到了這個,我還不清楚。我認(rèn)為這是正確的:Varchar(max)將存儲為文本數(shù)據(jù)類型,因此存在缺陷。因此,假設(shè)您的字段可靠地低于8000個字符。像我的數(shù)據(jù)庫表中的BusinessName字段。實際上,商業(yè)名稱可能總是在(從我的帽子里拿出一個數(shù)字)500個字符??雌饋砦疫\行的大量varchar字段遠(yuǎn)低于8k字符數(shù)。那么我應(yīng)該將該字段設(shè)為varchar(500)而不是varchar(8000)嗎?根據(jù)我對SQL的理解,這兩者之間沒有區(qū)別。因此,為了簡化生活,我想將所有varchar字段定義為varchar(8000)。這有什么缺點嗎?相關(guān):varchar列的大?。ㄎ也挥X得這個回答了我的問題)。
3 回答

青春有我
TA貢獻(xiàn)1784條經(jīng)驗 獲得超8個贊
從處理的角度來看,使用varchar(8000)和varchar(500)并沒有什么區(qū)別。定義字段應(yīng)該保持的最大長度并使varchar成為一個長度,這更像是一種“良好實踐”。它可用于協(xié)助數(shù)據(jù)驗證。例如,將州名縮寫為2個字符或郵政/郵政編碼為5或9個字符。當(dāng)您的數(shù)據(jù)與字段長度至關(guān)重要的其他系統(tǒng)或用戶界面(例如,大型機(jī)平面文件數(shù)據(jù)集)進(jìn)行交互時,這曾經(jīng)是一個更重要的區(qū)別,但現(xiàn)在我認(rèn)為它比其他任何東西更習(xí)慣。

慕田峪9158850
TA貢獻(xiàn)1794條經(jīng)驗 獲得超7個贊
除了最佳實踐(BBlake的答案)
使用DDL會收到有關(guān)最大行大?。?060)字節(jié)和索引寬度(900字節(jié))的警告
如果超過這些限制,DML將會死亡
ANSI PADDING ON是默認(rèn)值,因此您最終可能會存儲一整行空白
添加回答
舉報
0/150
提交
取消