Soru 1: 8000 karakter nasıl devreye giriyor ve nereden haberdar olmam gerekir?
N'yi 8000 olarak ayarlamak 8000 karakterin devreye girmesine neden olur. Char, nchar, nvarchar ve varchar ile ilgili Precision, Scale ve Length (Transact-SQL) referanslarının farkında olmanız gerekir . Buna karşılık, n'nin maksimuma ayarlanması (tırnak işaretleri olmadan) SQL Server'ın maksimum bayt sayısını (alıntıda belirtildiği gibi) depolamasına (ve geri vermesine) neden olur.
Soru 2: Bu sütuna bir .net datareader sorgusu her zaman 100.000+ karakterle tam sonucu döndürür mü?
Bu bir .Net (SQL Server değil) sorusudur, ancak .Net datareader bir bayt akışı getirir. Bayt bir karakter değildir ve SQL Server bayt (karakter değil) döndürür. N 8000 olarak ayarlanmışsa ve veri türü nvarchar ise, SQL Server 8000 bayta kadar döner. NET veri okuyucusu 4000 Unicode karakter olarak yorumlayabilir. N, 8000 olarak ayarlanmışsa ve veri türü varchar ise, SQL Server 8000 bayta kadar döndürür. NET veri okuyucusu 8000 ANSI karaktere kadar yorumlayabilir. N, maks olarak ayarlanırsa ve veri türü nvarchar ise, SQL Server .Net veri okuyucusunun (2 ^ 31-1) / 2 karaktere kadar yorumlayabileceği 2 ^ 31-1 bayta kadar döner. N, maks olarak ayarlanırsa ve veri türü varchar ise, SQL Server .Net veri okuyucusunun en fazla 2 ^ 31-1 ANSI karakteri olarak yorumlayabileceği 2 ^ 31-1 bayta kadar döner.
Daha fazla "karakter" (daha doğru: bayt) depolayabildikleri için char veya varchar (nchar veya nvarchar yerine) kullanmayı seçerseniz, birçok Unicode karakterin eşdeğer ANSI karakterinin (bu nedenle dünyanın kullanıcıları uygulamanızda yerel / yerel karakterlerini göremez).
varchar(max)
kez denilentext
ve farklı bir veri türü olarak muamele edilmiştir.