Warum wird meine eindeutige Einschränkung unter Indizes zeigen sich eher dann unter Einschränkungen?
-
06-07-2019 - |
Frage
Ich habe eine Einschränkung für meine Tsql Tabelle wie folgt aus:
alter table disabledqualities
add constraint uc_uIdQualCode
unique (userId, qualitycode)
In MSSMStudio die Einschränkung zeigt unter Indizes nach oben eher dann unter Einschränkungen.
Warum?
- EDIT--
Ich verstehe, dass es einen Index erstellt die Einschränkung zu erzwingen, aber warum gibt es dann einen Knoten „constraints“ genannt?
Lösung
SQL Server erstellt hinter der Szene einen Index die Einschränkung zu erzwingen
hier ist eine andere Art und Weise des Schreibens, dass nicht gruppierten telling SQL Server durch Hinzufügen eines nicht gruppierten Index zu verwenden, können Sie auch eine auf die Bereitstellung von gruppierten schaffen, dass Sie keine PK haben, die (der Standard) oder einen anderen gruppierten Index bereits gruppiert ist
alter table disabledqualities
add constraint uc_uIdQualCode
unique nonclustered (userId, qualitycode)
[Bearbeiten] dieser Knoten Check-Einschränkung, eindeutige Einschränkungen hinzugefügt werden unter Indizes
hinzufügenoder so bleiben weg von Assistenten
Andere Tipps
Überprüfen Sie Einschränkungen und Standardeinschränkungen sind unter der Einschränkungen Knoten gezeigt.
SQL verwendet Indizes eindeutige Einschränkungen zu erzwingen.
Ich verstehe, dass es einen Index erstellt die Einschränkung zu erzwingen, aber warum gibt es dann einen Knoten „constraints“ genannt?
Dieser Knoten ist CHECK
Einschränkungen angezeigt werden soll.
Die richtige Antwort ist „weil Microsoft gesagt. Wenn Sie die Antwort wollen, müssen Sie sie fragen.“
Da UNIQUE-Einschränkungen können in Sysindexes Systemansicht gefunden werden
select * from sysindexes where name = 'uc_uIdQualCode'
Es ist einfach logisch So fügen Sie neue einzigartige constaint von Studio Sie klicken müssen verwalten Index und Schlüssel-Taste. Also, wenn Sie es von Indizes hinzufügen, müssen Sie es in Indizes siehe:)
Ich denke, vielleicht Sie nicht verstehen, was in Zwänge auftauchen könnte becasue Sie nicht wissen, was eine Check-Bedingung ist. Eine Check-Einschränkung wird die Daten auf Einfügung oder Aktualisierung überprüfen, um zu sehen, ob es irgendeine Art von Geschäftsregel erfüllt. Es ist für die Gewährleistung der Datenintegrität verwendet. Zum Beispiel wenn Sie haben eine ganze Feld, das nur die Werte von 1,4 oder 5 enthalten soll, dann würden Sie eine Check-Bedingung einrichten, um sicherzustellen, dass 9 nicht immer auf das Feld hinzugefügt. Eine Check-Einschränkung auf Datumsfeld kann festlegen, dass es als das aktuelle Datum und die Uhrzeit für ein Feld später sein muss, dass die PlannedCompletionDate ist oder dass CompletionDate muss später als Startdatum sein. Dies sind die Art von Dingen, die unter Einschränkungen angezeigt.