Ένας οδηγός για ΜΟΝΑΔΙΚΟΥΣ περιορισμούς στον Microsoft SQL Server

click fraud protection

Δημιουργώντας ΜΟΝΑΔΙΚΟ περιορισμός, Οι διαχειριστές του SQL Server καθορίζουν ότι μια στήλη βάσης δεδομένων ενδέχεται να μην περιέχει διπλές τιμές. Όταν δημιουργείτε ένα νέο ΜΟΝΑΔΙΚΟ περιορισμός, Ο SQL Server ελέγχει τη συγκεκριμένη στήλη για να προσδιορίσει εάν περιέχει διπλές τιμές. Εάν το τραπέζι περιέχει διπλότυπα, η εντολή δημιουργίας περιορισμών αποτυγχάνει. Ομοίως, αφού ορίσετε ένα ΜΟΝΑΔΙΚΟ περιορισμό σε μια στήλη, οι προσπάθειες προσθήκης ή τροποποίησης δεδομένων που θα προκαλούσαν την ύπαρξη διπλότυπων θα αποτύχουν.

Κωδικός SQL σε μαύρο φόντο.
KIVILCIM PINAR / Getty Images

Γιατί να χρησιμοποιήσετε ΜΟΝΑΔΙΚΟΥΣ περιορισμούς

Ένας ΜΟΝΑΔΙΚΟΣ περιορισμός και ένα πρωτεύον κλειδί επιβάλλουν τη μοναδικότητα, αλλά υπάρχουν φορές που ένας ΜΟΝΑΔΙΚΟΣ περιορισμός είναι η καλύτερη επιλογή.

  • Χρησιμοποιήστε έναν ΜΟΝΑΔΙΚΟ περιορισμό για να καθορίσετε πολλούς περιορισμούς σε έναν πίνακα. Μπορείτε να επισυνάψετε μόνο ένα πρωτεύον κλειδί σε έναν πίνακα.
  • Χρησιμοποιήστε ΜΟΝΑΔΙΚΟ περιορισμό όταν μια στήλη επιτρέπει μηδενικές τιμές. Οι περιορισμοί πρωτεύοντος κλειδιού μπορούν να επισυναφθούν μόνο σε στήλες που δεν επιτρέπουν μηδενικές τιμές.
    instagram viewer

Δημιουργία ΜΟΝΑΔΙΚΟΥ περιορισμού

Ο ευκολότερος τρόπος για να δημιουργήσετε έναν μοναδικό περιορισμό στο Transact-SQL είναι να συνδεθείτε σε μια μηχανή βάσης δεδομένων στο Object Explorer στο SQL Management Studio και μετά να κάνετε κλικ Νέο ερώτημα.

Χρησιμοποιήστε το ακόλουθο ερώτημα, τροποποιώντας τους όρους όπως απαιτείται, για να δημιουργήσετε έναν νέο πίνακα και να προσθέσετε έναν περιορισμό σε μια στήλη:

ΧΡΗΣΗ AdventureWorks2012; 
ΠΗΓΑΙΝΩ
ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ Παραγωγής. Ιστορία συναλλαγών4
(
TransactionID IN NOT NULL,
CONSTRAINT AK_TransactionID ΜΟΝΑΔΙΚΟ (TransactionID)
);
ΠΗΓΑΙΝΩ.

Εκτελέστε το ερώτημα.

Ομοίως, για να δημιουργήσετε έναν μοναδικό περιορισμό σε έναν υπάρχοντα πίνακα, εκτελέστε το ακόλουθο ερώτημα T-SQL:

ΧΡΗΣΗ AdventureWorks2012; 
ΠΗΓΑΙΝΩ
ALTER TABLE Πρόσωπο. Κωδικός πρόσβασης
ΠΡΟΣΘΗΚΗ ΣΥΝΔΕΣΗΣ AK_Password UNIQUE (PasswordHash, PasswordSalt);
ΠΗΓΑΙΝΩ.

ΜΟΝΑΔΙΚΟΙ περιορισμοί εναντίον ΜΟΝΑΔΙΚΑ ευρετήρια

Υπήρξε κάποια σύγχυση σχετικά με τη διαφορά μεταξύ ενός UNIQUE περιορισμού και ενός UNIQUE ευρετηρίου. Αν και μπορείτε να χρησιμοποιήσετε διαφορετικές εντολές T-SQL για να τις δημιουργήσετε (ALTER TABLE και ADD CONSTRAINT για περιορισμούς και ΔΗΜΙΟΥΡΓΙΑ ΜΟΝΑΔΙΚΟΥ ΔΕΙΚΤΗΣ για ευρετήρια), έχουν το ίδιο αποτέλεσμα, ως επί το πλείστον. Στην πραγματικότητα, όταν δημιουργείτε ένα ΜΟΝΑΔΙΚΟ περιορισμό, δημιουργεί πραγματικά ένα ΜΟΝΑΔΙΚΟ ευρετήριο στον πίνακα. Σημειώστε πολλές διαφορές, ωστόσο:

  • Όταν δημιουργείτε ένα ευρετήριο, μπορείτε να προσθέσετε επιπλέον επιλογές στην εντολή δημιουργίας.
  • Μια στήλη που υπόκειται σε ΜΟΝΑΔΙΚΟ περιορισμό μπορεί να χρησιμοποιηθεί ως ξένο κλειδί.
instagram story viewer