我知道TEXT,NTEXT和IMAGE已被棄用,最終將從SQL Server中刪除。使用VARCHAR(max),NVARCHAR(max)和VARBINARY(max)代替TEXT,NTEXT和IMAGE有什麼好處?
但是,除了這個棄用,,爲什麼VARCHAR(max),NVARCHAR(max)和VARBINARY(max)數據類型更好?爲什麼微軟選擇他們?
我注意到VARCHAR和NVARCHAR可以與=和GROUP BY一起使用,而舊的類型不能。有更多的好處嗎?
我知道TEXT,NTEXT和IMAGE已被棄用,最終將從SQL Server中刪除。使用VARCHAR(max),NVARCHAR(max)和VARBINARY(max)代替TEXT,NTEXT和IMAGE有什麼好處?
但是,除了這個棄用,,爲什麼VARCHAR(max),NVARCHAR(max)和VARBINARY(max)數據類型更好?爲什麼微軟選擇他們?
我注意到VARCHAR和NVARCHAR可以與=和GROUP BY一起使用,而舊的類型不能。有更多的好處嗎?
因爲他們棄用或not going to be supported
重要的ntext,文本和圖像數據類型將在Microsoft SQL Server的未來版本中刪除。避免在新的開發工作中使用這些數據類型 ,並計劃修改當前使用它們的應用程序 。改爲使用nvarchar(max),varchar(max)和 varbinary(max)。
相關問題
是的,但除了棄用之外,爲什麼新數據類型更好?除了棄用... –
@JohnAssymptoth除了事實上,如果你有一天開始使用它們,你將不得不遷移,而不是從一開始就做它?我不確定我是否按照你的邏輯:-) – Bridge
不,他們沒有「折舊」。但是他們已經被「棄用」了,因爲他們攜帶了傳統的行李,比如不得不使用TEXTPTR,WRITETEXT等來處理N/TEXT – RichardTheKiwi
的數據類型進行了反對,因爲與SQL Server的進步,它不再需要處理大段的文字( TEXT)或與VARCHAR或BINARY不同的二進制數據(IMAGE)。隨着存儲不再真的成爲一個問題了,我們現在可以爲您的內容添加SUBSTRING(<varchar(max)>
,1234567,400),而在過去,1MB似乎很多,並且需要特殊處理,例如article中的函數。
IMAGE帶有類似的行李到TEXT,它需要以一種特殊的方式存儲大小,而不是擴展VARBINARY以滿足2GB的任何需求。
但是,具有專用BLOB和CLOB的相同原因在內存/存儲約束條件下仍然有效,因此SQL Server CE仍然具有IMAGE類型,並且不會很快消失。
這不只是'='。幾乎沒有任何字符串函數在'text'字段上工作,新的數據類型更容易處理。例如,爲了替代文本字段,您需要使用'TEXTPTR' [像這裏一樣](http://stackoverflow.com/a/304643/73226)。對於'varchar(max)',你只需調用'REPLACE' –
潛在的重複:http://stackoverflow.com/questions/564755/sql-server-text-type-vs-varchar-data-type – Bridge
你期望什麼從這個問題中獲益?您可以選擇「與類似的非最大數據類型一致的數據類型」或「Microsoft高聲喊叫不要使用的數據類型」。你實際使用哪種類型? –