Αυτήν τη στιγμή είστε εκτός σύνδεσης, σε αναμονή για επανασύνδεση στο Internet
Είσοδος

Το πρόγραμμα περιήγησής σας δεν υποστηρίζεται

Πρέπει να ενημερώσετε το πρόγραμμα περιήγησης για να χρησιμοποιήσετε την τοποθεσία.

Κάντε ενημέρωση στην πιο πρόσφατη έκδοση του Internet Explorer

Το μήνυμα λάθους προκύπτει 1785, όταν δημιουργείτε έναν περιορισμό FOREIGN KEY που μπορεί να προκαλέσει πολλές διαδρομές σε επικάλυψη

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:321843
Συμπτώματα
Όταν δημιουργείτε έναν περιορισμό FOREIGN KEY ενδέχεται να λάβετε το ακόλουθο μήνυμα λάθους:
Διακομιστής: Μήνυμα λάθους 1785, 16 επιπέδου, κατάσταση 1, γραμμή 1 Εισαγωγή στις FOREIGN KEY περιορισμού 'fk_two' στον πίνακα 'πίνακας2' μπορεί να προκαλέσει κύκλους ή πολλές διαδρομές σε επικάλυψη. Καθορίστε ON DELETE δεν ΕΝΕΡΓΕΙΑ ή ON UPDATE ΟΧΙ ΕΝΕΡΓΕΙΑ ή τροποποίηση άλλων περιορισμών FOREIGN KEY.Διακομιστής: Μήνυμα λάθους 1750, 16 επιπέδου, κατάσταση 1, γραμμή 1 πιθανόν δεν δημιουργήσει περιορισμού. Δείτε προηγούμενα σφάλματα.
Αιτία
Λαμβάνετε αυτό το μήνυμα λάθους επειδή στον SQL Server, ένας πίνακας δεν μπορεί να εμφανίζεται περισσότερες από μία φορές σε μια λίστα με όλες τις διαδοχικές αναφορών ενέργειες που ξεκινούν από ένα DELETE ή μια πρόταση UPDATE. Για παράδειγμα, το δέντρο των επικαλυπτόμενων αναφορών ενέργειες μόνο πρέπει να έχει μία διαδρομή σε ένα συγκεκριμένο πίνακα στη δομή διαδοχικές ενέργειες αναφορών.
Εναλλακτικός τρόπος αντιμετώπισης
Για να επιλύσετε αυτό το ζήτημα, μην δημιουργείτε ένα ξένο κλειδί που θα δημιουργήσει περισσότερες από μία διαδρομή σε έναν πίνακα σε μια λίστα με τις διαδοχικές ενέργειες αναφορών.

Μπορείτε να επιβάλετε ακεραιότητα αναφορών, με πολλούς τρόπους. Η δηλωτική ακεραιότητα αναφορών (DRI) είναι η πιο βασική τρόπο, αλλά επίσης είναι η λιγότερο ευέλικτη τρόπο. Εάν χρειάζεστε περισσότερη ευελιξία, αλλά εξακολουθείτε να θέλετε ένα υψηλό βαθμό ακεραιότητας, μπορείτε να χρησιμοποιήσετε τα εναύσματα.
Περισσότερες πληροφορίες
Το ακόλουθο δείγμα κώδικα είναι ένα παράδειγμα μιας προσπάθειας δημιουργίας FOREIGN KEY που δημιουργεί το μήνυμα λάθους:
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.				

Αναφορές

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα "Επικαλυπτόμενων αναφορών περιορισμούς ακεραιότητας" στο SQL Server 2000 Books Online.

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί με μηχανική μετάφραση

Ιδιότητες

Αναγνωριστικό άρθρου: 321843 - Τελευταία αναθεώρηση: 12/21/2010 06:57:00 - Αναθεώρηση: 2.0

  • 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 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • kbbug kbpending kbprb kbprogramming kbmt KB321843 KbMtel
Σχόλια
>>