|
|
Yayınlandı 13.06.2018 11:07:11
|
|
|

İlk olarak, varchar(max) Microsoft tarafından kullanılan metin veri türünün yerine geçerMetin gibi eski alan türleri sonraki sürümlerde iptal edilebilir。 Yani hangi metin kaydedilebilir, varchar(max) kesinlikle kaydedilebilir. Aslında, depolayabileceği karakter sayısı çok büyük. Saklanabilen 420 milyon karaktere ulaşmak zor, ki bence ulaşmak zor.
Sadece önceden biliyordummetin ve görüntü, SQL Server tarafından modası geçmiş olabilecek veri türleridir, ancak spesifik nedeni net değil, bugün okuduğumda metin ile varchar(max) ile nvarchar(max) arasındaki farkı buldum; bunun esas olarak operatörlerin kısıtlanması nedeniyle, metin yalnızca aşağıdaki fonksiyonlar tarafından kullanılabilir:
| fonksiyon | Açıklama | | VERI UZUNLUĞU | METIN OKUMA | | PATINDEX | METIN BOYUTUNU AYARLA | | ALT DIZİ | GÜNCELLEME METNI | | TEXTPTR | YAZ METNI | | METNVALID | |
Örneğin, "Metin" sütununun veri tipi metin ise, aşağıdaki örneğin olduğu gibi "=" ve "left()" gibi işlemler için kullanılamaz:
Bir tablo oluşturun ve veriyi doldurun:
eğer varsa (sysobjects'ten * seçin, burada id = OBJECT_ID('[asdf]') ve OBJECTPROPERTY(id, 'IsUserTable') = 1)
DROP TABLE [asdf]
TABLO OLUŞTUR [asdf] (
[inttest] [int] KIMLIK (1, 1) NULL DEĞIL ,
[metin] [metin] NULL ,
[varcharmax] varchar(max) NULL )
TABLOYU DEĞIŞTIR [ASDF] NOCHECK İLE KıSıTLAMA EKLE [PK_asdf] BIRINCIL ANAHTAR KÜMELENMEMIŞ ( [inttest] )
IDENTITY_INSERT [asdf] AÇIK
INSERT [asdf] ( [inttest] , [text] , [varcharmax] ) DEĞERLER ( 1 , '1111111' , '1111111' )
BAŞLAT IDENTITY_INSERT [asdf] HAREKETE GEÇ
Sorguyu çalıştırın:
Soruşturma 1: SELECT [metin]
,[varcharmax]
[testDB]'DEN. [dbo]. [asdf]
burada
[metin] ='11111' VE
[varcharmax] = '1111111'
Aşağıdaki hata mesajı görünür:
Mesaj 402, Seviye 16, Eyalet 1, Hat 1
Veri tipleri metin ve varchar eşit operatörde uyumlu değildir.
Soruşturma 2: SELECT [metin]
,[varcharmax]
[testDB]'DEN. [dbo]. [asdf]
burada
[varcharmax] = '1111111'
başarılı çalışabilir
MS SQL2005 ve üzerinde, büyük değerli veri türleri eklenin (varchar(max), nvarchar(max), varbinary(max)). Büyük değerli veri türü, 2^30-1 bayta kadar veri depolayabilir.
Bu veri türleri, varchar, nvarchar ve varbinary gibi küçük veri tipleriyle davranışsal olarak aynıdır.
Microsoft'un iddiası, önceki metin, ntext ve görüntü veri tiplerini bu veri tipiyle değiştirmek ve aralarındaki karşılık şudur:
varchar(max)-------metin;
nvarchar(max)-----ntext;
varbinary(max)----image.
Büyük değerli veri tiplerinde, büyük değerli verilerle çalışmak eskisine göre çok daha esnektir. Örneğin, metin önceden 'like' olarak kullanılamaz, ancak varchar(max)'dan sonra bu sorunlar yoktur; çünkü varchar(max) davranış olarak varchar(n) ile aynıdır, bu yüzden varcahr'da kullanılabilecek şey varchar(max)'da kullanılabilir.
Ayrıca, bu durum, eklenen ve silinmiş tablolarda büyük değerli veri tipi sütun referanslarında AFTER tetikleyicilerinin kullanılmasını destekler. metin iyi değil, kısacası, büyük değerli veri tipini kullandıktan sonra "belim artık ağrımıyor, bacaklarım ağrımıyor ve bir nefesde altıncı kata çıkabiliyorum" diyorum. Ne bekliyorsunuz, büyük değer tipini kullanın.
|
Önceki:Hı-hı, hı-hı, hıÖnümüzdeki:EF (lambda ifadesi) verilerde karşılaşılan birkaç istisnayı sorgular
|