2011-09-12 54 views
5

可能重複:
SQL Server Text type vs. varchar data type
Using varchar(MAX) vs TEXT on SQL ServerSQL 2008 - VARCHAR(最大值)與文本數據類型

從這篇文章,它看起來像他們都具有相同的容量大小: http://msdn.microsoft.com/en-us/library/ms143432.aspx

是真的嗎?真正的差異是什麼?

我剛剛從甲骨文(CLOB遷移的一些數據,並把它做成一個varchar(最大),但它看起來像它截斷一些值,無論如何,我應該用文字來代替?

謝謝!

+1

TEXT正成爲depracated - http://andrewm-developmentnotes.blogspot.com/2011/03/text-type-deprecated-in-sql-server-2008.html – StuartLC

+1

此線程有你正在尋找的答案: http://stackoverflow.com/questions/564755/sql-server-text-type-vs-varchar-data-type – Icarus

+0

http://stackoverflow.com/questions/834788/using-varcharmax-vs-text-on- sql-server – NullUserException

回答

11

不,你不應該使用TEXT其一,it has been deprecated since SQL Server 2005,同時你會發現很多的字符串操作不反對它的工作,不要使用TEXTNTEXTIMAGE在所有 - 。使用VARCHAR(MAX)NVARCHAR(MAX)VARBINARY(MAX)代替

+0

該死的微軟。他們爲什麼不能遵守慣例並使用像MySQL和Postgres這樣的文本? –

+1

@亨利,因爲他們已經使用了文字,並且被吸引。爲什麼MySQL不能遵循標準並使用offset/fetch而不是這個愚蠢的限制廢話?泥飛兩種方式... –

+0

如果有很多風 – shiggity

8

舊版類型(TEXT,NTEXT,IMAGE)已被棄用,並且對它們的支持將在未來版本的SQL Server中刪除。

您在使用方式上存在顯着差異。新的MAX類型支持使用.WRITE語法的高效更新。傳統類型具有一套神祕的功能來實現相同的功能(TEXTPTR,UPDATETEXT,sp_invalidate_testptr)。

新的MAX類型可用於REPLACESUBSTRING等功能,任何接受VARCHAR(N)的功能也將接受VARCHAR(MAX)

傳統類型不支持MAX類型支持的隱式轉換,請參閱Data Type Conversions

某些引擎特性適用於MAX類型,但不適用於傳統類型,例如。在線操作(在SQL 11 they support tables with BLOBs

相關問題