رسالة الخطأ 1785 عند إنشاء قيد "مفتاح خارجي" يؤدي عدة مسارات تتالي

الأعراض

قد تتلقى رسالة الخطأ التالية عند إنشاء قيد "مفتاح خارجي":

الخادم: قد يؤدي Msg 1785، مستوى 16 حالة 1، "السطر 1: عرض المفتاح الخارجي" قيد 'fk_two' في جدول جدول '2' دورات أو مسارات تتالي متعددة. تحديد عند حذف أي إجراء أو إجراء لا على تحديث أو تعديل قيود "المفتاح الخارجي" الأخرى. الملقم: Msg 1750، مستوى 16، حالة 1، البند 1 يمكن إنشاء القيد. راجع الأخطاء السابقة.

السبب

تتلقى رسالة الخطأ هذه لأن SQL Server جدول لا تظهر أكثر من مرة واحدة في قائمة كافة المتتالية المرجعي الإجراءات التي بدأها عبارة UPDATE أو حذف. على سبيل المثال، شجرة إجراءات المرجعي المتتالية فقط يجب مسار واحد إلى جدول محدد على شجرة إجراءات المرجعي المتتالية.

الحل البديل

للتغلب على هذه المشكلة، لا إنشاء مفتاح خارجي التي تقوم بإنشاء مسار جدول واحد أو أكثر في قائمة الإجراءات المرجعي المتتالية.

يمكنك فرض التكامل المرجعي بعدة طرق. التكامل المرجعي التعريفي (DRI) هي الطريقة الأساسية، إلا أنها أيضا طريقة مرنة على الأقل. إذا كنت تحتاج قدرا أكبر من المرونة، لكن تزال تريد درجة عالية من التكامل، يمكنك استخدام المشغلات بدلاً من ذلك.

مزيد من المعلومات

نموذج التعليمات البرمجية التالية مثال على محاولة إنشاء "المفتاح الخارجي" الذي يقوم بإنشاء رسالة الخطأ:

Use tempdbgo
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.

المراجع

لمزيد من المعلومات، راجع الموضوع "المتتالية قيود التكامل المرجعي" في كتب SQL Server 2000.
خصائص

رقم الموضوع: 321843 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 2

تعليقات