Ich versuche, einige SQL-Syntax auswendig zu lernen, und ich habe die ALTER TABLE ADD CONSTRAINT Syntax runter. Ich glaube, dass ich richtig bin, wenn ich sage, dass, wenn Sie diese Syntax verwenden, um eine FOREIGN KEY- oder PRIMARY KEY-Einschränkung hinzuzufügen, dieser SQL-Server automatisch Indizes zur Unterstützung der Abhängigkeitsoperationen erstellt. (Ist das wahr ... oder gilt das nur für die PK, aber nicht für die FK?)Beim Löschen einer Einschränkung werden die unterstützenden Indizes ebenfalls gelöscht.
Wenn ja, wenn Sie die ALTER TABLE DROP CONSTRAINT Syntax verwenden ... werden die unterstützenden Indizes automatisch ebenfalls gelöscht? Können diese impliziten unterstützenden Indizes explizit gelöscht werden? Wenn ja, wird die CONSTRAINT automatisch entfernt?
Ich will nur wissen, wie es "unter der Decke" funktioniert. Googeln hat nicht geholfen. Ich könnte mir vorstellen, dass ich einige Systemtabellen abgefragt haben könnte, um die Wahrheit herauszufinden, aber ich dachte, ich würde es stattdessen versuchen.
Danke für Ihre Hilfe.
Seth
Nicht immer wahr. Wenn für die Tabelle bereits ein gruppierter Index vorhanden ist, wird die PRIMARY KEY-Einschränkung durch einen eindeutigen nicht gruppierten Index erzwungen. –
In SQL Server 2008 haben Fremdschlüssel etwas mit Indizes gemeinsam. Ich konnte einen Index nicht löschen (und es war kein Primärschlüssel-Index), denn wenn von Fremdschlüsseln referenziert wurde. – LukLed
@LukLed, wenn Sie eine 1 zu viele Parent-Child-Beziehung mit einem FK erzwungen haben, muss das Elternelement eindeutig sein. Wenn Sie versuchen, die Eindeutigkeitsbeschränkung für das Elternelement zu löschen, wird ein Fehler ausgelöst. –