Ερώτηση: Προσπαθώ να χρησιμοποιήσω τη μέθοδο ανοιχτού πίνακα/κλεισίματος πίνακα για να
δημιουργήσω τον νέο πίνακα με SQL Dexterity. Ωστόσο, στην πρόταση "ανοιχτός πίνακας", επιστρέφεται SQL: "Μια ανοιχτή λειτουργία σε πίνακα xxx απέτυχε
κατά την πρόσβαση SQL δεδομένων". Όταν κάνω κλικ στην επιλογή "Περισσότερες πληροφορίες", αναφέρει "[Microsoft][Πρόγραμμα οδήγησης ODBC SQL Server][SQL Server] Υπάρχει ήδη ένα αντικείμενο με το όνομα PKADSY4997 στη βάση δεδομένων. [Microsoft] [Πρόγραμμα οδήγησης ODBC SQL Server ODBC] [SQL Server] Δεν ήταν δυνατή η δημιουργία περιορισμού. Δείτε προηγούμενα σφάλματα".
Το φυσικό όνομα του πίνακα είναι PKADSY4997 που δεν υπάρχει ούτε καμία από τις αποθηκευμένες διαδικασίες zDP για αυτόν τον πίνακα. Τι μπορεί να προκαλεί το σφάλμα;
Απάντηση: Σε αυτή την περίπτωση, ο πίνακας είχε δημιουργηθεί και αποτεφθεί προηγουμένως, αλλά για κάποιο λόγο
ένας περιορισμός στον πίνακα δεν είχε καταργηθεί.
Στην Ανάλυση ερωτήματος, κάναμε αυτό το ερώτημα: επιλέξτε * από
τα αρχεία sysobjects όπου name = 'PKADSY4997' Το αναγνωριστικό που επιστράφηκε
ήταν 151193332 και το parent_obj ήταν 173243672.
Εξετάζοντας τη parent_obj, στη συνέχεια, κάναμε το ερώτημα επιλογής σε σχέση με το γονικό αντικείμενο και δεν μπορέσαμε να βρούμε ένα. Επομένως, αυτός ήταν ένας ορφανός περιορισμός όπως αναμέναμε.
Σε αυτό το σημείο, έπρεπε να διαγράψουμε τον ορφανό περιορισμό. Ωστόσο, πρώτα, μια ρύθμιση που πρέπει να αλλάξει.
Στο παράθυρο SQL Server "Ιδιότητες", υπάρχει ένα πλαίσιο ελέγχου που πρέπει να επισημαίνεται για να επιτρέπεται η διαγραφή αυτού του περιορισμού. Να επιτρέπεται η απευθείας μετατροπή τροποποιήσεων στους καταλόγους συστήματος.
Τώρα από την Ανάλυση ερωτήματος: διαγράψτε από
τα αρχεία sysobjects όπου name = ''PKADSY4997' Με αυτόν τον τρόπο καταργήθηκε ο περιορισμός και ο πίνακας θα μπορούσε να δημιουργηθεί
σωστά από την Dexterity τώρα.
Αυτό το άρθρο ήταν Αναγνωριστικό εγγράφου TechKnowledge:26107