2012-03-07 125 views
2

我正在製作個人資料系統,我在數據庫中有一個名爲AboutMe的字段,其數據類型爲文本我應該使用什麼數據類型來存儲文本數據?

此字段可能包含最多30,000個字符。問題在於,如果我使用多達27,000個字符(或超過4,000個字符),它們不會顯示在UI上,而是會截斷內容並只顯示少量字符。 如果我使用4000或4000以上的字符,UI顯示少於4,000個字符

我正在使用SQL Server 2008 R2數據庫。

+3

該問題也被截斷了。 – 2012-03-07 08:07:03

+0

請發表表格定義。 – 2012-03-07 08:08:03

回答

2

從SQL Server 2005起,您應該對非Unicode文本使用VARCHAR(MAX),對於Unicode文本應該使用NVARCHAR(MAX)(每個字符使用2個字節)。 TEXTNTEXT已被棄用,不應再使用

這些是當前的數據類型,它們可以像對待任何其他文本/字符串列一樣進行處理。所有的字符串函數都可以正常工作。

這些列中每一列的最大容量是2 GByte數據 - 即非Unicode或10億個Unicode字符的20億個字符。

考慮到一個很長的書像Tolstoj的戰爭與和平大概是500萬個字符或更少(560'000個字),這將是足夠的空間,以這本書至少200倍存儲在統一 - 應是足夠的大多數應用程序....

2

text數據類型是deprecated,所以你應該使用varchar(max)來代替。

如果用戶界面的意思是SQL Managament Studio,它不會顯示大的文本值是正確的。出於性能方面的考慮,編輯有這樣的限制。

以編程方式訪問數據時,不存在此類限制。但是,您應該知道,大文本值是在單獨的數據流中發送的,因此如果每條記錄有多個較大的文本值,則必須按照您選擇它們​​的順序訪問它們。

0

您可以使用ntext數據類型。

相關問題