Στην καθημερινή ανάπτυξη του SQL Server, η στήλη ταυτότητας του τύπου ταυτότητας χρησιμοποιείται συχνά ως ο αυτοαυξανόμενος αριθμός μιας δομής πίνακα. Για παράδειγμα, αριθμός προϊόντος, σειριακός αριθμός εγγραφής κ.λπ. Οι αναφορές σε αυτοαναπτυσσόμενες στήλες διευκολύνουν σημαντικά την ανάπτυξη προγραμμάτων βάσεων δεδομένων, αλλά μερικές φορές αυτός ο επίμονος τύπος πεδίου μπορεί επίσης να προκαλέσει κάποιο πρόβλημα.
1. Τροποποιήστε τις τιμές πεδίων της στήλης αναγνώρισης:
Μερικές φορές, για να υλοποιηθεί μια συνάρτηση, είναι απαραίτητο να τροποποιηθεί η τιμή ενός πεδίου τύπου Ταυτότητα αυτο-αναπτυσσόμενη, αλλά αυτή η λειτουργία δεν επιτρέπεται από προεπιλογή λόγω του τύπου της στήλης ταυτότητας. Για παράδειγμα, εάν υπάρχουν 5 κομμάτια δεδομένων που προστίθενται κανονικά στη βάση δεδομένων και 2 διαγραφούν αυτήν τη στιγμή, τότε εάν τα δεδομένα προστεθούν ξανά, στη στήλη αναγνώρισης που αναπτύσσεται αυτόματα θα εκχωρηθεί αυτόματα η τιμή 6, αλλά εάν θέλετε να εκχωρήσετε μια τιμή 3 κατά την εισαγωγή δεδομένων, δεν επιτρέπεται από προεπιλογή. Εάν θέλετε να αλλάξετε την τιμή αυτού του πεδίου, μπορείτε να ελέγξετε πλήρως την εισαγωγή της τιμής του πεδίου αναγνώρισης, υπάρχουν ακόμα μέθοδοι, χαχα.
ΟΡΊΣΤΕ IDENTITY_INSERT /[ΠΊΝΑΚΑΣ/] [ON| ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟ] Χρησιμοποιώντας την παραπάνω δήλωση, μπορείτε εύκολα να ελέγξετε εάν μια στήλη αναγνωριστικού που αναπτύσσεται αυτόματα σε έναν πίνακα θα αυξηθεί αυτόματα, δηλαδή εάν επιτρέπεται να καθορίσετε με μη αυτόματο τρόπο την τιμή του πεδίου στήλης αναγνωριστικού κατά την εισαγωγή μιας εγγραφής. Εάν έχει καθοριστεί ως ενεργό, μπορείτε να καθορίσετε την τιμή του αναγνωριστικού πεδίου στήλης κατά την εισαγωγή, η οποία δεν αυξάνει αυτόματα την εκχωρημένη τιμή. Φυσικά, εάν το χρησιμοποιήσετε, πρέπει να χρησιμοποιήσετε αυτήν τη δήλωση για να απενεργοποιήσετε το διακόπτη στην προεπιλεγμένη κατάσταση, διαφορετικά το πεδίο δεν θα αυξήσει αυτόματα την εκχωρημένη τιμή όταν εισαγάγετε δεδομένα την επόμενη φορά.
2. Επαναφέρετε την τιμή πεδίου της στήλης αναγνώρισης:
Όταν διαγραφεί ένα μέρος της εγγραφής δεδομένων, η νέα εγγραφή δεδομένων προστεθεί αργότερα, η τιμή της στήλης αναγνώρισης θα έχει ένα μεγάλο διάστημα αδράνειας, το οποίο φαίνεται πολύ δυσάρεστο. Ακόμα και αν διαγράψετε όλες τις εγγραφές στον πίνακα, η τιμή της στήλης ταυτότητας θα συνεχίσει να αυξάνεται αυτόματα και να αυξάνεται ατελείωτα, αντί να αυξάνεται από την αρχή. Η τιμή σπόρου του αυτοαναπτυσσόμενου χωραφιού μπορεί να μηδενιστεί χρησιμοποιώντας την ακόλουθη δήλωση:
DBCC CHECKIDENT(ΠΊΝΑΚΑΣ, [ΕΠΑΝΑΣΠΟΡΆ| NORESEED], [1]) Η παραπάνω δήλωση θα αναγκάσει την επαναφορά της αρχικής τιμής του καθορισμένου πίνακα στο 1. Ωστόσο, εάν δεν θέλετε να επαναφέρετε τον σπόρο στο 1, μπορείτε να αντικαταστήσετε την τρίτη παράμετρο με την τιμή σπόρου που θέλετε να χρησιμοποιήσετε. Εάν θέλετε να μάθετε τον τρέχοντα σπόρο αντί να επαναφέρετε τον αναγνωρισμένο σπόρο, πρέπει να χρησιμοποιήσετε το NORESEED αντί να ορίσετε την τρίτη παράμετρο. |