VarBinary vs Image SQL Server Veri Türü İkili Verileri Saklamak İçin?


91

İkili dosyaları SQL Server Veritabanına depolamam gerekiyor. Varbinary ve Görüntü'den daha iyi Veri Türü hangisi?

Yanıtlar:


143

Görüntü kullanımdan kaldırıldığından, varbinary kullanmalısınız.

başına Microsoft'a (bağlantı @Christopher için teşekkürler)

ntext, text ve image veri türleri, Microsoft SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır. Bu veri türlerini yeni geliştirme çalışmasında kullanmaktan kaçının ve şu anda bunları kullanan uygulamaları değiştirmeyi planlayın. Bunun yerine nvarchar (max), varchar (max) ve varbinary (max) kullanın.

Büyük Unicode olmayan ve Unicode karakterleri ve ikili verileri depolamak için sabit ve değişken uzunluklu veri türleri. Unicode verileri, UNICODE UCS-2 karakter kümesini kullanır.


1
@ cmsjr: Belki Microsoft'un dediği gibi: "görüntü veri türü Microsoft SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır."
Ehsan

6
@Ehsan Sadece kullanımdan kaldırılan terime aşina olmadığınızı varsayabilirim. Genelde bir şeyin kullanımdan kaldırıldığını söylediğinizde, gelecekte kaldırılacağı için kullanılmaması gerektiğini söylüyorsunuz. Yani benim yazım ve yorumunuzda gönderdiğiniz alıntı aslında aynı anlama geliyor.
cmsjr

Endişelenme, iyi bir noktaya değindin. İfadeyi güncelleyeceğim.
cmsjr

Ben buna "yalnızca bağlantı" cevabı demezdim. Ben buna "daha fazla öğrenmeye meyilli olanlar için bazı yararlı bağlantılar içeren bir soruya kısa ve doğru cevap" cevabı diyebilirim.
cmsjr

2
Açık konuşacağım ve düzenleme yapmaktan kaçındığımı, çünkü ona saldırgan ve tehditkar bir tonla yaklaştığınızı bildireceğim. Belki de kabalık etmek niyetin değildi, ama bana öyle davrandın gibi geldi. Kabalık, çoğu zaman insanları, aksi takdirde iyi fikirleri reddetmeye sevk edebilir. İçeriği önerdiğiniz gibi geliştirdim, ancak önerilerinizi nasıl sunduğunuz konusunda da biraz düşünmenizi rica ediyorum.
cmsjr

14

varbinary(max) gitmenin yoludur (SQL Server 2005'te tanıtılmıştır)


9

FileStreamSQL Server 2008'de tanıtılan oldukça şık da var .


1
şık: görünüşte akıllı ?
Liam

1
"oldukça şık" kelimesi, ortak dilde biraz daha genel bir anlama sahiptir (sadece "şık" dan) ... Bence en uygun.
Kesinlikle

Bu soru sütun biçimleriyle ilgilidir ve FileStreamyalnızca bir depolama davranışıdır. Filestream, varbinary(max)sql sunucu örneğiniz kullanılarak ve üzerinde değişiklikler yapılarak uygulanır.
crthompson

6

https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql

görüntü

0 ile 2 ^ 31-1 (2.147.483.647) bayt arasında değişen uzunlukta ikili veri. Yine de görüntü veri türünü kullanmak desteklenmektedir, ancak şunlara dikkat edin:

https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql

değişken ikili [(n | maks)]

Değişken uzunluklu ikili veriler. n, 1 ile 8.000 arasında bir değer olabilir. max, maksimum depolama boyutunun 2 ^ 31-1 bayt olduğunu belirtir. Depolama boyutu, girilen verinin + 2 bayt gerçek uzunluğudur. Girilen verilerin uzunluğu 0 bayt olabilir. Varbinary için ANSI SQL eşanlamlısı ikili çeşitlidir.

Yani her ikisi de eşit boyuttadır (2GB). Ancak şunlara dikkat edin:

https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016#features-not-supported-in-a-future-version- sql-sunucusu

"Görüntü" veri türünün sonu hala belirlenmemiş olsa da, "gelecek" kanıt eşdeğerini kullanmalısınız.

Ama kendinize şu soruyu sormalısınız: BLOB'ları neden bir Sütunda depolamak?

https://docs.microsoft.com/en-us/sql/relational-databases/blob/compare-options-for-storing-blobs-sql-server

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.