TEXT
büyük dize verileri parçaları için kullanılır. Alanın uzunluğu belirli bir eşiği aşarsa, metin satır dışında saklanır.
VARCHAR
her zaman satırda saklanır ve 8000 karakter sınırlaması vardır . Bir x oluşturmaya çalışırsanız VARCHAR(x)
, burada x> 8000 , bir hata alırsınız:
Sunucu: Msg 131, Seviye 15, Durum 3, Hat 1
'Varchar' türüne verilen boyut (), herhangi bir veri türü için izin verilen maksimum değeri aşıyor (8000)
Bunlar uzunluk sınırlamaları endişe yok VARCHAR(MAX)
içinde SQL Server 2005 gibi, sıranın dışına saklanabilir, TEXT
.
Not MAX
Burada sabit bir tür değildir, VARCHAR
ve VARCHAR(MAX)
tükenen çok yakın çok farklı türleri vardır TEXT
.
SQL Server'ın önceki sürümlerinde TEXT
doğrudan erişemediniz, sadece bir alabilir TEXTPTR
ve içinde READTEXT
ve WRITETEXT
işlevlerinde kullanabilirsiniz.
Gelen SQL Server 2005 yapabilirsiniz doğrudan erişim TEXT
kolonları (eğer hala açık döküm ihtiyaç olsa VARCHAR
onlar için bir değer atamak için).
TEXT
iyidir:
- Büyük metinleri veritabanınızda depolamanız gerekiyorsa
- Sütunun değerini aramazsanız
- Bu sütunu nadiren seçerseniz ve üzerine eklemezseniz.
VARCHAR
iyidir:
- Küçük teller saklarsanız
- Dize değerinde arama yaparsanız
- Her zaman seçerseniz veya birleştirmelerde kullanırsanız.
By seçerek burada sütunun değeri döndürmek herhangi sorgular veren demek.
By arama Burada Kimin sonuç değerine bağlıdır herhangi sorgular veren demek TEXT
veya VARCHAR
sütunda. Bu, herhangi bir durumda JOIN
veya WHERE
durumda kullanmayı içerir .
Gibi TEXT
satır dışında depolanan, kapsamayan sorgular TEXT
sütunu genellikle daha hızlıdır.
Neyin TEXT
iyi olduğuna dair bazı örnekler :
- Blog yorumları
- Wiki sayfaları
- Kod kaynağı
Neyin VARCHAR
iyi olduğuna dair bazı örnekler :
- Kullanıcı adları
- Sayfa başlıkları
- Dosya adları
Genel bir kural olarak, 200 karakteri aşmak için metin değerine ihtiyacınız varsa VE bu sütunda birleştirme kullanmayın TEXT
.
Aksi takdirde kullanın VARCHAR
.
PS Aynısı , yukarıdaki örnekler için kullanmanız gereken UNICODE
etkin NTEXT
ve aynı zamanda geçerlidir NVARCHAR
.
PPS aynı uygulanır VARCHAR(MAX)
ve NVARCHAR(MAX)
bu SQL Server 2005+ kullanım yerine TEXT
ve NTEXT
. Sen etkinleştirmeniz gerekir large value types out of row
ile onlar için sp_tableoption
bunları hep sıranın dışına saklanan olmak istiyorsanız.
Yukarıda ve bahsedildiği gibi burada , TEXT
gelecek sürümlerde kaldırılmış olacak:
text in row
Seçenek gelecekteki bir sürümüne kaldırılacaktır SQL Server . Yeni geliştirme işlerinde bu seçeneği kullanmaktan kaçının ve şu anda kullanılan uygulamaları değiştirmeyi planlayın text in row
. Size kullanarak büyük veri depolamak öneririz varchar(max)
, nvarchar(max)
ya varbinary(max)
veri türlerini. Bu veri türlerinin satır içi ve satır dışı davranışını denetlemek için large value types out of row
seçeneği kullanın.