“Dize veya ikili veriler kesilecek” nedenini görmenin etkili bir yolu var mı?


13

Bu, bu sorunun bir devamıdır . Ayrıca Microsoft'un bu özellik isteğiyle de ilgilidir .

Ancak, yıllar geçtikçe ve piyasaya sürüldüğünden beri birkaç büyük sürüm piyasaya ulaştı.

Soru: SQL Server 2017, bu hatanın temel nedenini bulmayı kolaylaştırmak için herhangi bir mekanizma sağlıyor mu? Ya da konunun rapor edildiği yaklaşık 9 yıl önce olduğu kadar soruşturmak zor mu?


Bu tek hatayı ayıklamak için haftada en az 4 saat harcadım ve SQL iş tanımımda bile yok.
Tonny

Yanıtlar:


20

Hiçbir değişiklik olmadı. SQL Server 2017 hala aynı belirsiz hata iletisini sunuyor ve rahatsız edici satır / sütunu keşfetmek için herhangi bir mekanizma sağlamıyor.

Bu Bağlan öğesi, Bağlan kullanımdan kaldırıldığında 1.600'den fazla oy aldı:

Microsoft'tan en son yorum şuydu:

Son güncelleme - üzerinde çalışan geliştirici, tam bir düzeltme oluşturmanın getirdiği zorlukları anlıyor. Gerçek dönüşüm işlevine tam bir hata iletisi oluşturmak için gereken sütunlarla ilgili bilgileri, ekleme veya güncelleme performansını etkilemeyecek şekilde ayarlamak zor olabilir. Kısa vadede kesilen verinin tipini ve uzunluğunu kaydetme gibi ucuz bir şey uygulayabiliriz. Böyle bir düzeltmenin ne zaman herkesin görebileceği bir sürüme ulaşacağını bilmek için henüz çok erken.

Önerebileceğim en iyi şey, o öğeye oy vermek (ve bunun için sizin için ekleyeceği iş değerini açıklamak).


+1. (App günlüğünüz yoksa) suçlu bulmak için daha az verimsiz yollardan birini eklemek için profil oluşturucu ve filtre (host / user / app / query / etc tarafından) kullanmaktır. Ayrıca bu yararlı olabilir: nimblegecko.com/…
jean

3

Dualarımız bu MDSN blog gönderisinde belirtildiği gibi cevaplanmıştır :

SQL Server 2019, ek bağlam bilgileri içeren yeni bir ileti sunar.

Hata şimdi çok daha anlamlı olmalı:

Msg 2628, Düzey 16, Durum 1, Satır 14 Dize veya ikili veriler 'DbName.SchemaName.TableName', 'Col' sütununda kesilir. Kesik değer: '...'.

Ayrıca, iyi haber şu ki, bu değişiklik hem 2017 hem de 2016'da geri taşınacak:

Bu yeni ileti ayrıca SQL Server 2017 CU12'ye (ve yaklaşan SQL Server 2016 SP2 CU'da) desteklenir, ancak varsayılan olarak değil. Oturum kimliği veya oturum düzeyinde, ileti kimliği 8152'yi 2628 ile değiştirmek için izleme işaretini 460 etkinleştirmeniz gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.