27 Aralık 2007 Perşembe

"Msg 8152, Level 16, State 4, Line 1 String or binary data would be truncated. The statement has been terminated."

HATA MESAJI:
"Msg 8152, Level 16, State 4, Line 1 String or binary data would be truncated. The statement has been terminated."

AÇIKLAMA:
Bir tabloda bulunan sütundaki karakter uzunluğundan fazla karakter girmeye çalışırsanız bu hata ile karşılaşırsınız ve bilgi girme işleminiz iptal olur.

Meselâ "Tablom" adında bir tablonuz var ve şeması da aşağıdaki gibi:

CREATE TABLE Tablom
(No Int Identity(1,1) PRIMARY KEY,
Ad nvarchar(10),
Soyad nvarchar(10),
)

Bu tabloya eğer aşağıdaki gibi bir veri girmeye çalışırsanız sorun olmaz:
INSERT INTO Tablom VALUES('Ekrem', 'Önsoy')

Fakat şöyle bir veri girmeye çalışırsanız hata alırsınız:
INSERT INTO Tablom VALUES('Abdulrezzak', 'Önsoy')

Çünkü "Abdulrezzak" adı, tabloyu oluştururken "Ad" sütununa atadığımız 10 karakterlik uzunluğu geçmektedir. Bu nedenle de veri kaydedilemez ve işlem bu hata ile sonuçlanır.

ÇÖZÜM:
Sütununuzun karakter genişliğini arttırın. Meselâ yukarıdaki örneğimizden devam edersek, "Ad" sütununun nvarchar veritipinin karakter genişliğini 15 yaparsak "Adbulrezzak" ismiyle ilgili bir sorun yaşamayız. Tabii diğer isimleri de gözönünde bulundurarak ihtiyacınıza göre daha geniş bir karakter aralığı tanımlayabilirsiniz.

1 yorum:

Adsız dedi ki...

Makale gerçekten çok yardımcı oldu teşekkürler...