我讀互聯網上這些陳述有關SQL服務器數據類型:VARBINARY(MAX)和IMAGE數據類型有很大的技術差異嗎?
VARBINARY(MAX)
- 二進制串 具有可變長度可存儲多達 2^31-1字節。IMAGE
- 二進制串與 可變長度達2^31-1 (2,147,483,647)字節。
有VARBINARY(MAX)
和IMAGE
數據類型之間的一個非常大的技術差異?
如果存在差異:我們是否必須定製ADO.NET如何在SQL Server中插入和更新圖像數據字段?
我讀互聯網上這些陳述有關SQL服務器數據類型:VARBINARY(MAX)和IMAGE數據類型有很大的技術差異嗎?
VARBINARY(MAX)
- 二進制串 具有可變長度可存儲多達 2^31-1字節。
IMAGE
- 二進制串與 可變長度達2^31-1 (2,147,483,647)字節。
有VARBINARY(MAX)
和IMAGE
數據類型之間的一個非常大的技術差異?
如果存在差異:我們是否必須定製ADO.NET如何在SQL Server中插入和更新圖像數據字段?
我認爲在技術上它們是相似的,但要注意從the documentation以下是很重要的:
的ntext,文本和圖像數據類型將在MicrosoftSQL Server的未來版本中刪除。避免在新的開發工作中使用這些數據類型,並計劃修改當前正在使用它們的應用程序。改爲使用nvarchar(max),varchar(max)和varbinary(max)。
固定長度和可變長度數據類型,用於存儲大型非Unicode和Unicode字符以及>二進制數據。 Unicode數據使用UNICODE UCS-2字符集。
它們存儲相同的數據:這是儘可能去。
「圖像」已過時,並且具有一組功能和操作 與它一起工作。 varbinary(max)可以像更短的 varbinary(對於text和varchar(max)同上)操作。
不要在任何新項目中使用圖片:只需在此處搜索問題 由於 的功能有限,所以民間用圖片和文本數據類型。
事實上,VARBINARY
可以存儲可被轉換成一個字節數組,如文件中的任何數據,這是IMAGE
數據類型使用相同的處理,因此,由這點來看,這兩種數據類型的可以存儲相同的數據。 但VARBINARY
有一個大小屬性,而IMAGE
接受任何大小的數據類型限制,所以當使用IMAGE
數據類型時,您將花費更多的資源來存儲相同的數據。 在Microsoft®SQLServer®中,IMAGE
數據類型確實被棄用,那麼您必須在VARBINARY
下注數據類型。
但要小心:的Microsoft®SQLServer®上CE®(包括最新的4.0版本)仍然使用IMAGE
數據類型和可能在這個數據類型不會「消失」這麼快,因爲在精簡版的版本中,這數據類型比其他文件存儲更快。
我無意間找到了它們之間的一個區別。您可以將字符串插入圖像類型,但不能插入varbinary。也許這就是MS爲什麼不推薦使用圖像類型的原因,因爲使用字符串設置圖像確實沒有意義。
根據http://www.codeproject.com/Articles/128657/How-Do-I- Use-SQL-File-Stream可以保存它,甚至可以將它用於測試,也可以直接在文件中讀取文本,這對測試來說可能很好,所以我不會只要你需要強制轉換就可以看到差異,當然你不僅僅是爲了測試而且還爲了保存基於文本的文章而使用字符串(儘管正確的命名不是「Image」) – 2014-08-18 13:13:53
VARBINARY的限制(MAX):部分更新不支持以FILESTREAM作爲源的列。 [(tekkies.co.uk)](http://wiki.tekkies.co.uk/Porting_SQL_IMAGE_to_VARBINARY(MAX)) – 2013-06-26 11:36:50