Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Συμπτώματα

Ας υποθέσουμε ότι προσπαθείτε να διαγράψετε δεδομένα από έναν πίνακα και των δεδομένων γίνεται αναφορά σε άλλους πίνακες Microsoft SQL Server 2016 και 2017. Ιf εξερευνήσετε ερωτήματος σχέδιο εκτέλεσης, μπορείτε να το δείτε Χρησιμοποιήστε έναν τελεστή ξένο κλειδί αναφοράς ελέγχου .Σε αυτήν την περίπτωση, ενδέχεται να λάβετε το ακόλουθο μήνυμα ακόμα και αν η γραμμή στην οποία η διαγραφή δεν γίνεται αναφορά σε άλλους πίνακες:

Msg 547, επίπεδο 16, κατάσταση 0, γραμμή LineNumber

Η πρόταση CONSTRAINT διένεξη με τον περιορισμό της ΑΝΑΦΟΡΆΣ

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Επίλυση

Αυτό το ζήτημα διορθώνεται στην την ακόλουθη αθροιστική ενημερωμένη έκδοση για τον SQL Server:

Σημείωση Αυτό το ζήτημα διορθώνεται με την αθροιστική ενημερωμένη έκδοση 6 για τον SQL Server 2016 SP2.

Σχετικά με τις αθροιστικές ενημερωμένες εκδόσεις για τον SQL Server:

Κάθε νέα αθροιστική ενημερωμένη έκδοση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ασφαλείας διορθώνει που συμπεριλήφθηκαν με την προηγούμενη αθροιστική ενημερωμένη έκδοση. Αποσύρετε τις πιο πρόσφατες αθροιστικές ενημερωμένες εκδόσεις για τον SQL Server:

Λύση

Για να επιλύσετε αυτό το πρόβλημα, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους:

  • Χρησιμοποιήστε το επίπεδο συμβατότητας κάτω από 130 για να εκτελέσετε αυτό το ερώτημα.

  • Αλλαγή της δομής του ευρετηρίου στον πίνακα αναφοράς.

Περισσότερες πληροφορίες

Αρχική βάση δεδομένων, με εύρος ρύθμισης παραμέτρων επιπέδου συμβατότητας 130 στο SQL Server 2016, ένα σχέδιο εκτέλεσης του ερωτήματος είναι να χρησιμοποιήσετε τον ξένο κλειδί αναφοράς Τελεστής ελέγχου για να επιβεβαιώσετε αν μια γραμμή σε έναν πίνακα αναφέρεται από τις γραμμές στο άλλο πίνακες με περιορισμούς ακεραιότητας αναφορών. Τέτοια τελεστής μπορεί να χρησιμοποιηθεί εάν έναν πίνακα αναφέρεται από έναν μεγάλο αριθμό ξένους πίνακες. Με αυτόν τον τελεστή, SQL Server επιλέγει ένα ευρετήριο σε κάθε αναφορά σε πίνακα για την εκτέλεση του εν λόγω ελέγχου. Εάν μια αναφορά σε πίνακα έχει ένα ευρετήριο πολλών στηλών κλειδιού, αυτές ορισμένα στήλες, στην αρχή δεν αποτελούν μέρος του ξένου κλειδιού, αλλά κάποια άλλη στήλες αποτελούν τμήμα του ξένου κλειδιού. Αυτό μπορεί να οδηγήσει σε εσφαλμένη ελέγχου που εκτελούνται από τον SQL Server.

Για παράδειγμα, σκεφτείτε το παρακάτω σχήμα:

Δημιουργία πίνακα tpk (pk int περιορισμού πρωτεύον κλειδί cpk σε σύμπλεγμα)

Δημιουργία πίνακα tfk (μια int, fk int tpk αναφορές σε ξένα κλειδιά cfk περιορισμού, clustered(a,fk)) ia ευρετηρίου

Τέτοια διάταξη μπορεί να οδηγήσει σε αυτό το θέμα, αλλά αν αλλάξετε σειρά στηλών σε ευρετήριο ια (fk, ένα), δεν θα.

Αναφορές

Πληροφορίες σχετικά με το  ορολογίαπου χρησιμοποιεί η Microsoft για την περιγραφή ενημερωμένων εκδόσεων λογισμικού.

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×