Belirtiler
Microsoft SQL ServerSQL Server 2005'te birincil anahtar tablosunun birincil anahtar sütununu varolan sütun değerlerinin büyük/küçük harflerini değiştirerek veya sütun değerlerini ekleyerek güncelleştirdiğinizde, aşağıdaki hata iletisini alırsınız:
Not
Msg 547, Level 16, State 0, Line 1
UPDATE deyimi, "<Constraint>" REFERENCE kısıtlamasıyla çakışmıştır. Çakışma "Veritabanı adı", "Tablo adı>" tablosu<, "Sütun adı>" sütununda< meydana geldi.<>
Örneğin, bu sorun aşağıdaki iki durumda da oluşur.
Örnek 1
- SQL_Latin1_General_CP1_CI_AS harmanlama gibi büyük/küçük harfe duyarlı olmayan bir harmanlama kullanarak iki tablo oluşturursunuz.
- Bu iki tablo arasında birincil anahtar ve yabancı anahtar ilişkisi kurarsınız.
- Var olan sütun değerlerinin büyük/küçük harflerini değiştirerek birincil anahtar tablosunun birincil anahtar sütununu güncelleştirirsiniz.
Örnek 2
İki tablo oluşturursunuz.
Bu iki tablo arasında birincil anahtar ve yabancı anahtar ilişkisi kurarsınız.
ANSI_PADDING ayarı KAPALI olarak ayarlanmıştır.
Not Varsayılan olarak, ANSI_PADDING ayarı KAPALI olarak ayarlanmıştır.
Birincil anahtar tablosunun birincil anahtar sütununu sütun değerlerini ekleyerek güncelleştirirsiniz.
Neden
Bu sorun, tür düzeyinde eşit olan değerlerin ikili düzeyde farklı olabilmesi nedeniyle oluşur.
Örneğin, tür düzeyinde N'a', N'A'ya eşittir. Ancak, ikili düzeyde, N'a', N'A'ya eşit değildir. Optimizasyon mekanizması hatalı bir şekilde, büyük/küçük harfi değiştiren güncelleştirme işleminin gerçek bir değişiklik yapmadığını varsayar. Bu nedenle, PK-FK kontrolü başarısız olur.
Çözüm
Hizmet paketi bilgileri
Bu sorunu gidermek için SQL ServerSQL Server 2005 için en son hizmet paketini edinin. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
913089 En son SQL Server 2005 hizmet paketi nasıl edinilir
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır. Bu sorun ilk olarak SQL Server 2005 Service Pack 3'te düzeltilmiştir.
Daha Fazla Bilgi
Yazılım güncelleştirme terminolojisi hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
824684 Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması