Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

"Key column information is insufficient or incorrect. Too many rows were affected by update"

Îåêßíçóå áðü ôï ìÝëïò alexnir. Τελευταία δημοσίευση από το μέλος Dimitris Papadimitriou στις 07-12-2006, 10:22. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-12-2006, 08:38 21791

    "Key column information is insufficient or incorrect. Too many rows were affected by update"

    "Key column information is insufficient or incorrect. Too many rows were affected by update"

    το παραπανω μηνυμα το ελαβα οταν πηγα να κανω update σε ενα πεδιο, μεσω μιας εφαρμογης. Στην αρχή νόμιζα πως είναι πρόβλημα του προγράμματος ή της έκδοσης ADO που χρησιμοποιω (2,1). Ψαχνοντας ομως βρηκα αυτο http://support.microsoft.com/kb/268505 που λεει σε γενικες γραμμες, πως ειναι προβλημα της εκδοσης που χρησιμοποιω (MS SQL 2000) χωρις ομως να προτεινει καποια λυση. Συνεχιζοντας το ψαξιμο βρηκα πως για να το προσπερασω το προβλημα αυτο, καλο θα ειναι να δηλωσω ενα κλειδι στον πινακα (δεν ειχα καποιο κλειδι) και να προσθεσω καποιο/α indexes. Το μηνυμα αυτο εμφανιστηκε στον ιδιο πινακα, με διαφορετικα δεδομενα, σε διαφορετικους servers και βασεις.

    Αυτο που θελω να ρωτησω ειναι αν γνωριζετε καποιο άλλο τροπο.

    ευχαριστω

    Αλέξανδρος

  •  07-12-2006, 10:22 21799 σε απάντηση της 21791

    Απ: "Key column information is insufficient or incorrect. Too many rows were affected by update"

    Ρίξε μια ματιά εδώ:

    http://www.dotnetzone.gr/cs/blogs/imanoussakis/archive/2006/11/13/20258.aspx
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  07-12-2006, 10:24 21800 σε απάντηση της 21799

    Απ: "Key column information is insufficient or incorrect. Too many rows were affected by update"

    Σε γενικές γραμμές όμως, καλύτερα να έχεις ένα κλειδί, έτσι ώστε να μην δημιουργείται αυτό το πρόβλημα. Εκτός και αν δεν γίνεται διαφορετικά!
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  07-12-2006, 10:44 21804 σε απάντηση της 21800

    Απ: "Key column information is insufficient or incorrect. Too many rows were affected by update"

    Ψαχνοντας περισσοτερο σημερα, ανακαλυψα που οφειλετε το παραπανω μυνημα.

    Σε εναν πινακα χωρις κλειδι, με indexes αν 2 ή περρισοτερες εγγραφες ειναι πανομοιοτυπες (εχουν ακριβως τα ιδια δεδομενα) τοτε παρουσιαζετε αυτο το μηνυμα ειτε σε delete ειτε σε update.

    Η μια λυση ειναι αυτη που προτεινες (σε ευχαριστω πολυ για την αμμεση απαντηση σου) σε συνδιασμο με καποιο κλειδι.

    Η αλλη λυση (αυτη που εφαρμοσα προσωρινα) ειναι η προσθηκη ενος πεδιου timestamp.

    Και στις 2 περιπτωσεις καταφερνουμε 2 rows να μην ειναι ποτε ιδια και αρα να παιζει κανονικα.

    Κλειδι δεν ειχα βαλει γιατι ο συγκεκριμενος πινακας ηταν ενας detail πινακας και ο σχεδιασμος της βασης προσωρινος/τεστ.

    Το επομενο ερωτημα μου ειναι αν εχει παρατηρησει καποιος το ιδιο μηνυμα σε Pro εκδοση ή στην εκδοση 2005;

    Αλέξανδρος
  •  07-12-2006, 10:52 21806 σε απάντηση της 21804

    Απ: "Key column information is insufficient or incorrect. Too many rows were affected by update"

    Είναι λογικό. Πας να διαγράψεις ή να κάνεις update μια εγγραφή χρησιμοποιώντας ένα WHERE που "πιάνει" περισσότερες από μία εγγραφές (μια και υπάρχουν τουλάχιστον δύο πανομοιότυπες γραμμές) και τρως το υπέροχο αυτό μήνυμα. Το ερώτημά μου (και το δικό σου από ο,τι καταλαβα) είναι βέβαια (και εδώ μπορεί να μας απαντήσει ίσως ο Μάνος) γιατί το ΚΒ της Microsoft δεν αναφέρει τον SQL Server 2005. Εχουν προβλέψει εσωτερικά για κάτι που να "ξεχωρίζει" τις εγγραφές ακόμα και σε αυτές τις περιπτώσεις, η απλά το KB Article δεν έχει ενημερωθεί;


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  07-12-2006, 11:23 21810 σε απάντηση της 21806

    Απ: "Key column information is insufficient or incorrect. Too many rows were affected by update"

    Να διευκρινησω πως τα update ή τα delete παω να τα κανω μεσα απο τον Enterprise Manager και οχι μεσα απο καποια εφαρμογη.
  •  07-12-2006, 13:58 21826 σε απάντηση της 21810

    Απ: "Key column information is insufficient or incorrect. Too many rows were affected by update"

    O Enterprise Manager θα σου εμφανίσει αυτό το πρόβλημα μια και στα μετόπισθεν φτιάχνει ένα delete ή update query στο οποίο το WHERE περιλαμβάνει το primary key, ή αν δεν υπάρχει προφανώς φτιάχνει ένα WHERE το οποίο περιλαμβάνει όλα τα πεδία του πίνακα. Και πάλι όμως, στην περίπτωση δύο πανομοιότυπων γραμμών, το query επιστρέφει παραπάνω από μια γραμμή. Οπότε ιδού το σφάλμα.


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  07-12-2006, 14:15 21829 σε απάντηση της 21810

    Απ: "Key column information is insufficient or incorrect. Too many rows were affected by update"

    αυτο δεν το ηξερα!

  •  07-12-2006, 14:25 21830 σε απάντηση της 21826

    Απ: "Key column information is insufficient or incorrect. Too many rows were affected by update"

    Δεν το έχω ψάξει, το μόνο που μπορώ να υποθέσω είναι ότι μπορεί αυτό το πρόβλημα να μην εμφανίζεται συχνά (πχ στο grid SQL Server Management Studio) στον SQL Server 2005 γιατί έχεις τη ROW_NUMBER που μπορεί να προσδιορίσει τις εγγραφές έστω και αν δεν έχουν κλειδί. Μπορεί και να κάνω λάθος και απλά να μην έχουν ενημερώσει το άρθρο στη KB.
    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems