Konseptte yeniyim nvarchar(MAX)
. Kaç karakter tutacak?
Yanıtlar:
Maks. Alan sayısı kapasite 2 gigabaytlık bir alandır - yani bir NVARCHAR(MAX)
alana sığacak 1 milyar 2 baytlık karakterin biraz üzerinde bakıyorsunuz .
Diğer cevabın daha ayrıntılı numaralarını kullanarak, saklayabilmelisiniz.
(2 ^ 31 - 1 - 2) / 2 = 1'073'741'822 double-byte characters
1 billion, 73 million, 741 thousand and 822 characters to be precise
senin içinde NVARCHAR(MAX)
sütuna (maalesef son yarım karakter israf edildiği ...)
Güncelleme: @MartinMulder'ın belirttiği gibi: herhangi bir değişken uzunluklu karakter sütununun gerçek uzunluğu depolamak için 2 bayt ek yükü de vardır - bu yüzden daha 2 ^ 31 - 1
önce öngördüğüm uzunluktan iki bayt daha çıkarmam gerekiyordu - böylece 1 Unicode karakterini daha az saklayabilirsiniz Daha önce iddia etmiştim.
VARCHAR(MAX)
Asya, Arap veya Kiril dilleri için 2 baytlık desteğe ihtiyacınız yoksa kullanın . (N)VARCHAR(x)
Bir dizenin asla x karakterden uzun olmayacağını biliyorsanız kullanın ( NVARCHAR(MAX)
bir ad için kullanmayın - NVARCHAR(50)
veya sizin için mantıklı olan her şeyi kullanın )
Gönderen char ve varchar (Transact-SQL)
varchar [(n | maks)]
Değişken uzunluklu, Unicode olmayan karakter verileri. n, 1 ile 8.000 arasında bir değer olabilir. max, maksimum depolama boyutunun 2 ^ 31-1 bayt olduğunu belirtir. Depolama boyutu, + 2 bayt girilen gerçek veri uzunluğudur. Girilen veriler 0 karakter uzunluğunda olabilir. Varchar için ISO eşanlamlıları char değişken veya karakter çeşitlidir.
2 ^ 31-1 bayt. Yani, varchar (max) için 2 ^ 31-1 karakterden biraz daha az ve nvarchar (max) için yarısından biraz daha az.