Örnek bir senaryo ile konuya başlangıç yaparak konunun daha anlaşılır olmasını sağlamayı düşünüyorum.

SQL Server veri tabanını kullandığınız bir proje olduğunu varsayalım. Bu projede xml dosyaları ile farklı işlemler yapılıyor. Projenizin belli bir noktasında işleme aldığınız xml dosyasıyla alakalı bir loglama yapmak istiyorsunuz. Loglamak istediğimiz xml dosyasını sunucuda veya başka bir yere dosya şeklinde kaydetmek yerine veri tabanına kaydetmek istediğimizi düşünelim. Log tablosunu yaratıp içerisine Data(NVARCHAR=MAX) şeklinde bir kolon değeri ekleyerek bu Data kolonuna xml içerisindeki değerlerin tümünü yazdırmak istiyoruz. NVARCHAR=MAX değerinin alabileceği maksimum değer 2GB olarak belirtilmiştir. Kaynak Bu MAX değerin üzerinde bir kayıt ekleme yapıldığında zaten veritabanı hatası alacağımız için ilgili xml dosyasını kayıt edemeyeceğiz. Gerekli kodları yazıp ilgili xml dosyalarını Log tablomuza ekleme işlemini başarılı bir şekilde yaptık. Log tablosunu incelediğimizde kayıtların olduğunu gördük buraya kadar hiçbirsorunla karşılaşmadık. Örnek senaryomuza veri tabanına kayıt ettiğimiz xml dosyalarını kopyalayıp harici bir uygulamaya(Notepad++) kopyalama işlemini gerçekleştirmek istiyoruz. Data kolonundan ilgili xml dosyasını kopyaladık ve harici bir uygulamaya yapıştırdık. Birde ne görelim xml dosyasının tamamı gözükmüyor. Yani xml dosyasının değerlerinin tamamına erişemiyoruz. Sorunu acaba veritabanına kayıt ederken mi eksik kaydettik diyede düşünebiliriz bunu için SQL üzerinde LEN() komutu ile karakter uzunluğu değerini öğrenip aynı değeri Notepad++ ile karşılaştırdığımızda bu değerin uyuşmadığını yani verinin düzgün bir şekilde kayıt olduğunu fakat kopyalama işleminde bir sınırlama olduğu durumu ortaya çıkmaktadır. Bunun sebebi SSMS(SQL Server Management Studio) 'da her kolonun görülebileceği maksimum değer limiti 64K veya daha azı şeklinde olduğu içindir. Maksimum değer ile alakalı resmi kaynak linki bulamadığımdan dolayı bilgiyi almış olduğum link bilgisini burada paylaşıyorum.

Bunun kolayla çözümünü https://www.ssmsboost.com/Download/SSMSBoost link üzerinden indirme ve kurulum işlemi yaptığınız taktirde SSMS ile ilgili kolon bilgisine sağ tıklayıp Copy current cell 1:1 seçeneği seçilerek ilgili tüm değerlere karakter kısıtlaması olmadan kopyalayıp yapıştırma işlemi yapabilirsiniz. SSMS üzerindende ilgili değerin artırılma işlemi ayarı var fakat bu ayar yapıldığı halde tüm dosya alınamaması durumuna karşılık kesin çözüm olarak ilgili programın yüklenilmesi ve işlemlerin yapılması böyle bir sorunla karşılaşıldığında kolay bir şekilde tüm değerlerin alınması sağlanabilmektedir.

data/admin/2020/9/EkranGorntusu.png