Wie finde ich heraus, welcher Fremdschlüssel auf einen Index der Tabelle verweist?

8

Ich habe einen nicht gruppierten Index, den ich löschen möchte (es ist ein Duplikat des gruppierten Indexes). Es wird jedoch von einer Fremdschlüsseleinschränkung verwendet. Ich möchte in der Lage sein zu identifizieren, welche Einschränkung den Index verwendet, damit ich es aktualisieren kann, um den Primärschlüsselindex zu verwenden.

Wenn ich versuche es fallen zu lassen:

%Vor%

Ich bekomme einen Fehler:

  

Ein expliziter DROP INDEX ist auf dem Index 'dbo.MyTable.idx_duplicate' nicht erlaubt. Es wird für die FOREIGN KEY Constraint-Durchsetzung verwendet.

Ich habe versucht, den Schuldigen mit der folgenden Frage zu finden, aber kein Glück:

%Vor%     
brianfeucht 09.09.2013, 21:06
quelle

3 Antworten

12

Etwas wie

%Vor%     
Laurence 09.09.2013, 21:37
quelle
6

Dies sagt Ihnen die Tabellen, den Fremdschlüssel und die beteiligten Spalten:

%Vor%

SQL Geige mit Demo .

    
Ian Preston 09.09.2013 21:39
quelle
2

Mir ist klar, dass dieser Beitrag ein paar Jahre alt ist, aber ich würde keinen solchen Index fallen lassen, ohne tiefer hinein zu gehen. Der nicht gruppierte Index ist NOT identisch mit dem gruppierten Index, auch wenn die Schlüsselspalten identisch sind. Der Leaf Level des NCI ist VIEL enger als der Leaf Level des CI und enthält daher viel mehr Zeilen pro Seite als das CI. Sie können tatsächlich ein Leistungsproblem verursachen (insbesondere für Einsätze in der anderen Tabelle), indem Sie das NCI ablegen.

    
Jeff Moden 09.10.2015 18:57
quelle

Tags und Links