Οδηγοί

Πώς να διορθώσετε το σφάλμα «Δεν είναι δυνατή η εισαγωγή ρητής τιμής για τη στήλη ταυτότητας στον πίνακα όταν το IDENTITY_INSERT έχει οριστεί στο OFF»;

Η κύρια στήλη κλειδιού ορίζεται συχνά σε αυτόματη αύξηση κατά τη δημιουργία μιας βάσης δεδομένων SQL Server. Το όριο IDENTITY είναι ενεργοποιημένο για τη στήλη πρωτεύοντος κλειδιού για να το κάνει αυτό. Η θέση έναρξης και το βήμα αύξησης μεταφέρονται στη στήλη IDENTITY ως παράμετροι. Στη συνέχεια, κάθε φορά που προστίθεται μια νέα εγγραφή και το ένθετο ταυτότητας ρυθμίζεται στο OFF, η τιμή της στήλης IDENTITY αυξάνεται κατά το προκαθορισμένο βήμα κανονικά έναν αριθμό. Επιπλέον, η ιδιότητα IDENTITY INSERT έχει οριστεί σε ON μόνο για έναν πίνακα σε μία συνεδρία.

Σε αυτό το άρθρο, θα συζητήσουμε το σφάλμα "Δεν είναι δυνατή η εισαγωγή ρητής τιμής για τη στήλη ταυτότητας στον πίνακα

όταν το IDENTITY_INSERT έχει ρυθμιστεί στο OFF "
όπως φαίνεται παρακάτω.

Το σφάλμα προκύπτει όταν ο χρήστης έχει ρυθμίσει το "identity_insert" σε "OFF". Στη συνέχεια προσπαθεί να εισαγάγει δεδομένα στη στήλη πρωτεύοντος κλειδιού του πίνακα. Αυτό μπορεί να εξηγηθεί χρησιμοποιώντας το παρακάτω παράδειγμα.

Δημιουργία βάσης δεδομένων και πίνακα:

Αρχικά, δημιουργήστε μια βάση δεδομένων με το όνομα "appuals".

Δημιουργήστε έναν πίνακα με το όνομα "άτομο" χρησιμοποιώντας τον ακόλουθο κωδικό. Χτισμένο τραπέζι χρησιμοποιώντας ένα «ΠΡΩΤΟΒΟΥΛΙΑ ΚΥΡΙΑΣ ΤΑΥΤΟΤΗΤΑ»

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ ατόμου (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))

Σύνταξη για τη ρύθμιση "ident_insert off | επί":

ο "Απενεργοποίηση ταυτότητας | επί" θα μας βοηθήσει να επιλύσουμε αυτό το σφάλμα. Η σωστή σύνταξη για αυτήν τη δήλωση είναι όπως παρακάτω.

ΡΥΘΜΙΣΗ IDENTITY_INSERT. .   ΕΠΙ 

Ενώ το πρώτο όρισμα είναι το όνομα της βάσης δεδομένων στην οποία βρίσκεται ο πίνακας. Το δεύτερο όρισμα που δείχνει είναι το σχήμα στο οποίο ανήκει αυτός ο πίνακας του οποίου η τιμή ταυτότητας πρέπει να οριστεί ΕΠΙ ή ΜΑΚΡΙΑ ΑΠΟ. Το τρίτο επιχείρημα

είναι ο πίνακας με τη στήλη ταυτότητας.

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

Σφάλμα 1: Ρυθμίστε την ταυτότητα_insert OFF

Στην πρώτη περίπτωση, θα εισαγάγουμε δεδομένα στον πίνακα με το «ΕΙΣΑΓΩΓΗ ΤΑΥΤΟΤΗΤΑΣ» οριστεί σε "ΜΑΚΡΙΑ ΑΠΟ". Έτσι, εάν το αναγνωριστικό υπάρχει στη δήλωση INSERT, θα λάβετε το σφάλμα "Δεν είναι δυνατή η εισαγωγή ρητής τιμής για τη στήλη ταυτότητας στον πίνακα" άτομο "όταν το IDENTITY_INSERT έχει οριστεί στο OFF".

Εκτελέστε τον ακόλουθο κώδικα στην καρτέλα ερωτήματος.

 απενεργοποιήστε το ident_insert άτομο. εισαγωγή σε τιμές προσώπου (αναγνωριστικό, όνομα_συνόλου, επώνυμο) (3, "Sadia", "Majeed"), (4, "Michel", "Ronald")

Η έξοδος θα είναι έτσι.

Λύση:

Όταν γυρίζετε το "ΑΝΑΓΝΩΣΗ ΤΑΥΤΟΤΗΤΑΣ", ο"PRIMARY KEY ID" ΔΕΝ ΠΡΕΠΕΙ ΝΑ ΠΑΡΕΧΕΤΑΙ στη δήλωση εισαγωγής

Τώρα εκτελέστε τον ακόλουθο κώδικα στην καρτέλα ερωτήματος

 απενεργοποιήστε το ident_insert άτομο. εισαγωγή σε τιμές προσώπων (όνομα_συνόλου, επώνυμο) ("Sadia", "Majeed"), ("Michel", "Ronald")

Αυτό θα εισαγάγει δεδομένα στον πίνακα χωρίς σφάλμα. Επιπλέον, το PRIMARY KEY ID δεν απαιτείται να εισαχθεί από τον χρήστη, αλλά θα προσθέσει αυτόματα μοναδική τιμή ταυτότητας όπως φαίνεται στο παρακάτω σχήμα.

Σφάλμα 2: Ορίστε το ident_insert ON

Στη δεύτερη περίπτωση, θα εισαγάγουμε δεδομένα στον πίνακα με το «ΕΙΣΑΓΩΓΗ ΤΑΥΤΟΤΗΤΑΣ» οριστεί σε "ΕΠΙ". Έτσι, εάν το αναγνωριστικό δεν υπάρχει στη δήλωση INSERT, θα λάβετε το σφάλμα "Msg 545, Level 16, State 1, Line 17. Η ρητή τιμή πρέπει να καθοριστεί για τη στήλη ταυτότητας στον πίνακα" πρόσωπο "είτε όταν το IDENTITY_INSERT έχει ρυθμιστεί στο ON ή όταν ένας χρήστης αναπαραγωγής εισάγει σε στήλη ταυτότητας NOT FOR REPLICATION".

Λύση:

Όταν γυρίζετε το"ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΑΥΤΟΤΗΤΑΣ" ο "ΠΡΩΤΕΥΩΝ ΚΛΕΙΔΙ ΤΑΥΤΟΤΗΤΑ" πρέπει να υπάρχει στη δήλωση εισαγωγής.

Εκτελέστε τον ακόλουθο κώδικα στην καρτέλα ερωτήματος

 ενεργοποιήστε το ident_insert άτομο; εισαγάγετε τιμές ατόμων (αναγνωριστικό, όνομα_συνόλου, επώνυμο) (5, "Jack", "black"), (6, "john", "Wicky")

Αυτό θα εισαγάγει δεδομένα στον πίνακα χωρίς σφάλμα. Έτσι το ΚΥΡΙΟ ΚΥΡΙΟ Κωδικό απαιτείται ρητά να εισαχθεί από τον χρήστη. Επίσης, δεν θα προσθέσει αυτόματα μοναδική τιμή ταυτότητας όπως φαίνεται στο παρακάτω σχήμα.

Αν εσύ "ΡΥΘΜΙΣΗ ΕΙΣΑΓΩΓΗΣ ΤΑΥΤΟΤΗΤΑΣ ", θα παραμείνει για ολόκληρη τη συνεδρία. Έτσι μπορείτε να προσθέσετε όσες εγγραφές θέλετε, αφού έχει ρυθμιστεί. Αυτό αναφέρεται επίσης μόνο στην περίοδο λειτουργίας όπου είναι ενεργοποιημένη. Επομένως, εάν ανοίξετε μια άλλη καρτέλα ερωτήματος, πρέπει να την αλλάξετε ΕΠΙ ξανά για αυτό το παράθυρο ερωτήματος.

Copyright el.absolutsilverpoint.com 2024

$config[zx-auto] not found$config[zx-overlay] not found