Έχω το παρακάτω σφάλμα όταν εκτελώ την ακόλουθη δέσμη ενεργειών. Ποιο είναι το σφάλμα και πώς μπορεί να επιλυθεί;
Insert table(OperationID,OpDescription,FilterID)
values (20,'Hierachy Update',1)
Σφάλμα:
Server: Msg 544, Level 16, State 1, Line 1
Δεν είναι δυνατή η εισαγωγή ρητής τιμής για τη στήλη ταυτότητας στον πίνακα 'table' όταν η IDENTITY_INSERT έχει οριστεί σε OFF.
Εισάγετε τιμές για το OperationId
που είναι μια στήλη ταυτότητας.
Μπορείτε να ενεργοποιήσετε την εισαγωγή ταυτότητας στον πίνακα με αυτόν τον τρόπο, ώστε να μπορείτε να καθορίσετε τις δικές σας τιμές ταυτότητας.
SET IDENTITY_INSERT Table1 ON
INSERT INTO Table1
/*Note the column list is REQUIRED here, not optional*/
(OperationID,
OpDescription,
FilterID)
VALUES (20,
'Hierachy Update',
1)
SET IDENTITY_INSERT Table1 OFF
μην βάζετε τιμή στο OperationID, επειδή θα δημιουργηθεί αυτόματα.Δοκιμάστε αυτό:
Insert table(OpDescription,FilterID) values ('Hierachy Update',1)
Να είστε πολύ προσεκτικοί με τη ρύθμιση IDENTITY_INSERT σε ON. Αυτή είναι μια κακή πρακτική, εκτός εάν η βάση δεδομένων βρίσκεται σε κατάσταση συντήρησης και έχει ρυθμιστεί σε single user. Αυτό επηρεάζει όχι μόνο τη δική σας εισαγωγή, αλλά και οποιουδήποτε άλλου προσπαθεί να αποκτήσει πρόσβαση στον πίνακα.
Γιατί προσπαθείτε να βάλετε μια τιμή σε ένα πεδίο ταυτότητας;