Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Hata iletisi bir FOREIGN KEY kısıtlaması oluşturduğunuzda 1785 oluşur, birden fazla art arda sıralı yolu neden olabilir

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:321843
Belirtiler
Bir FOREIGN KEY kısıtlaması oluşturduğunuzda, aşağıdaki hata iletisini alabilirsiniz:
Sunucu: Msg 1785, Level 16, State 1, Line 1 giriþ FOREIGN KEY kısıtlaması 'fk_two' tablo 'tablo2' üzerinde döngü ya da birden fazla art arda sıralı yolu neden olabilir. HIÇBIR EYLEM veya ON UPDATE NO ACTION DELETE belirtin veya diğer FOREIGN KEY kısıtlamaları değiştirin. Sunucu: 1750, Level 16, State 1, Line 1 hata sınırlaması oluşturulamadı. Önceki hatalar</a1> konusuna bakın.
Neden
SQL Server'da, tablo içinde bir DELETE veya UPDATE deyimi tarafından başlatılan tüm geçişli başvurusal eylemler listesi birden çok kez bulunamaz, çünkü bu hata iletisini alırsınız. Örneğin, geçişli başvurusal eylemleri ağacının yalnızca belirli bir tablo için bir yol geçişli başvurusal eylemleri ağaç üzerinde olması gerekir.
Pratik Çözüm
Bu soruna geçici bir çözüm bulmak için <a0></a0>, bir tabloya birden çok yol geçişli başvurusal eylemlerin bir listesini oluşturacağı yabancı bir anahtar oluşturun.

Çeşitli biçimlerde bilgi tutarlılığını zorlayabilirsiniz. Bildirime dayanan veri bütünlüğü (DRI) en temel yoludur, ancak bu, ayrıca en az esnek yoludur. Daha fazla esneklik gerekir, ancak hala büyük ölçüde bütünlük istediğiniz, bunun yerine Tetikleyicileri kullanabilirsiniz.
Daha fazla bilgi
Aşağıdaki örnek kod bir hata iletisi bir FOREIGN KEY oluşturma girişimi örnektir:
Use tempdbgocreate table table1 (user_ID integer not null primary key, user_namechar(50) not null)gocreate table table2 (author_ID integer not null primary key, author_namechar(50) not null, lastModifiedBy integer not null, addedby integer notnull)goalter table table2 add constraint fk_one foreign key (lastModifiedby)references table1 (user_ID) on delete cascade on update cascadegoalter table table2 add constraint fk_two foreign key (addedby)references table1(user_ID) on delete no action on update cascadego--this fails with the error because it provides a second cascading path to table2.alter table table2 add constraint fk_two foreign key (addedby)references table1 (user_ID) on delete no action on update no actiongo-- this works.				

Başvurular

Daha fazla bilgi için lütfen SQL Server 2000 Books Online'da "Basamaklı başvuru bütünlüğü kısıtlama" konusuna bakın.

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 321843 - Son İnceleme: 11/02/2007 10:14:14 - Düzeltme: 3.4

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Express Edition, Microsoft SQL 2005 Server Workgroup

  • kbmt kbbug kbpending kbprb kbprogramming KB321843 KbMttr
Geri bildirim