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

Makale çevirileri Makale çevirileri
Makale numarası: 321843 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

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 tempdb
go
create table table1 (user_ID integer not null primary key, user_name
char(50) not null)
go

create table table2 (author_ID integer not null primary key, author_name
char(50) not null, lastModifiedBy integer not null, addedby integer not
null)

go

alter table table2 add constraint fk_one foreign key (lastModifiedby)
references table1 (user_ID) on delete cascade on update cascade
go
alter table table2 add constraint fk_two foreign key (addedby)
references table1(user_ID) on delete no action on update cascade
go
--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 action
go
-- 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.

Özellikler

Makale numarası: 321843 - Last Review: 2 Kasım 2007 Cuma - Gözden geçirme: 3.4
Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbmt kbbug kbpending kbprb kbprogramming KB321843 KbMttr
Machine-translated Article
Ö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

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com