T-SQL’de Unique Constraint Uygularken Alınan Olası Hata ve Çözümü
T-SQL’de Unique Constraint’in nasıl uygulandığını Transact Sql-Constraintler(Kısıtlayıcılar) başlıklı yazımda irdelemiştik. Bu günlerde bu kısıtlayıcı üzerine bir çalışma gerçekleştirirken aşağıdaki olası hatayla karşılaştım.
“Msg 1919, Level 16, State 1, Line 2
Column ‘xxx’ in table ‘xxx’ is of a type that is invalid for use as a key column in an index.
Msg 1750, Level 16, State 0, Line 2
Could not create constraint or index. See previous errors.”
Aldığım hatanın görsel mesajınıda aşağıdan görebilirsiniz.
Bu bir olası hatadır. Çünkü belirli bir kritere göre Unique Constraint’i uygulamanız gerektiği üzere alınan bir hatadır.
O kriter ise, Unique Constraint’i uygulayacağınız kolon nvarchar özelliğinde ise maksimum 900 karakter genişliğinde olmalıdır. Yani kolonun tipi nvarchar(MAX) veyahut nvarchar(901) olursa bu hatayla karşılaşmanız muhtemeldir.
Yapılan gerekli düzenlemeden sonra Unique Constraint’i sorunsuz bir şekilde uygulayabilirsiniz.
Constraint’i uyguladıktan sonrada sistem bize aşağıdaki uyarıyı vermektedir.
“Warning! The maximum key length is 900 bytes. The index ‘csUnique’ has maximum length of 1800 bytes. For some combination of large values, the insert/update operation will fail.”
Bu uyarıda, bu yazının içeriğini özetlemektedir.
Hepinize iyi çalışmalar dilerim…