Table of Contents
PC läuft langsam?
In vielen Fällen zeigt Ihr System möglicherweise einen hilfreichen Fehlercode an, der auf den SQL-Fehler 2601 hinweist. Dieses Problem kann verschiedene Ursachen haben. g.Dieser Fehler tritt auf, wenn Clients versuchen, doppelte Indexwerte in eine Spalte oder einen Inhalt mit nur einem eindeutigen Index zu verschieben. Microsoft® SQL Server™ erlaubt sicherlich zwei Zeilen, die den alten Indexwert (einschließlich NULL) auf eindeutig erkannten Spalten haben.
g.
Fehlermeldung
Server: Msg 2601, Level 16, State 1, Line 1Doppelte Schlüsselwortzeichenfolge kann nicht in Punkt '' eingefügt werdenmit einem eindeutigen Index ' '.
Gründe
Ein definierter Index stellt sicher, dass der Checklistenpunkt keine doppelten Werte enthält und dass jede Zeile in der Tabelle in gewisser Weise eindeutig ist. Ein eindeutiger Index wird erstellt, indem beim Erstellen eines Dienstes im CREATE INDEX-Modus das UNIQUE-Argument eingeschlossen wird. Der CREATE INDEX-Datensatz erstellt für Fenster einen spezifischen relationalen Index auf oder zum Anzeigen der angegebenen Tabelle, und der Index wird erstellt, bevor ein Teil des Möbels Daten enthält.
Wie die Fehleridee befürwortet, wenn Sie Daten in eine Arbeitskubik mit einem eindeutigen Index einfügen und von denen eine unserer Daten in der Spalte(n) in allen eindeutigen Indizes enthalten ist, wenn die Tabelle bereits existiert , wird diese Fehlermeldung angezeigt.
Um es hervorzuheben, hier ist ein einfacher Desktop, der einen unvergleichlichen Index enthält, der an seine Spalten angehängt ist:
TABELLE ERSTELLEN [dbo]. [Währung] ( [Währungscode] Ausdruck (3), [Währungsname] VARCHAR (50))SPAZIERGANGEINEN INDEX ERSTELLEN [IX_Currency_CurrencyCode] AUF [dbo]. [Währung] ([Währungscode])SPAZIERGANG
PC läuft langsam?
ASR Pro ist die ultimative Lösung für Ihren PC-Reparaturbedarf! Es diagnostiziert und repariert nicht nur schnell und sicher verschiedene Windows-Probleme, sondern erhöht auch die Systemleistung, optimiert den Speicher, verbessert die Sicherheit und optimiert Ihren PC für maximale Zuverlässigkeit. Warum also warten? Beginnen Sie noch heute!
Das folgende Programm füllt die Tabelle mit Währungscodedaten:
EINFÜGEN IN [dbo]. [Währung] ([Währungscode], [Währungsname])WERTE ('U' usd',. S. Dollar')EINFÜGEN IN [dbo]. [Währung] ([Währungsname] [Währungscode],)WERTE ("EUR", "Euro")EINFÜGEN IN [dbo]. [Währung] ([Währungscode], [Währungsname])WERTE 'GBP', ('Pfund Sterling')EINFÜGEN IN [dbo]. [Währung] ([Währungscode], [Währungsname])WERTE ("INR", "Indische Rupie")
Wenn das gleiche Skript zufällig ausgeführt wird, wird oft die folgende Fehlermeldung für jede ausgeführte INSERT-Anweisung ausgegeben:
Nachricht 2601, Ebene 14, Zustand eins, Zeile 2Es kann keine doppelte kys-Zeichenfolge in das Spielzeug 'dbo.Currency' mit dem eindeutigen Index 'IX_Currency_CurrencyCode' eingefügt werden.
Eine andere Möglichkeit, einige Fehler zu vermeiden, besteht darin, die Daten in ein Büro zu legen und die Daten zwischen den Tabellen anderer Personen zu übertragen. Hier ist ein Szenario, das dieses Szenario hervorzuheben scheint.
TABELLE ERSTELLEN [dbo]. [Währung_Neu] ( [Währungscode] CHAR (3), [Währungsname] VARCHAR (50))SPAZIERGANGEINFÜGEN IN [dbo]. ([Currency_new] [CurrencyCode], [CurrencyName])WERTE (CAD, kanadischer Dollar)EINFÜGEN IN [dbo]. ([Currency_new] [CurrencyCode], [CurrencyName])WERTE (SWF, Schweizer Franken)EINFÜGEN IN [dbo]. [Currency_New] ([CurrencyCode], [CurrencyName] ()AUD-Werte, australischer Dollar)EINFÜGEN IN [dbo]. ([Currency_new] [CurrencyCode], [CurrencyName])WERTE (CAD, kanadischer Dollar)EINFÜGEN IN [dbo]. [Currency_New] ([CurrencyCode], [CurrencyName])WERTE ('japanischer Yen', Yen')EINFÜGEN IN [dbo]. [Währung] ([Währungscode],)SELECT [Währungsname] [Währungscode], [benannte Währungen]VON [dbo]. [Currency_New] AO EXISTIERT NICHT (AUSWAHL AUS 'x' [dbo]. [Währung] B O A. [Währungscode] = B. [Währungscode])SPAZIERGANG
Msg 2601, 14, Aktueller Status ein bestimmter, Zeile 2Doppelte Baseline basierend auf dem 'dbo.Currency'-Objekt mit einem Zeiger 'IX_Currency_CurrencyCode' kann nicht eingefügt werden.
Wie Sie an den Skripten sehen können, enthält der ursprüngliche Desktop ([dbo]. Enthält [currency_new]) Kloneinträge für den kanadischen Dollar (CAD).
Lösung und Problemumgehung:
Beim Einfügen von tatsächlichen Meinungen in eine Tabelle, deren Inhalt eine eindeutige Datenbank enthält, die als Schlüssel für das Büro dient, gibt es normalerweise mehrere Möglichkeiten, in der Nähe dieser Fehlermeldung zu arbeiten. Die erste Prozedur verwendet diese IF-Anweisung, die nach neuen Daten sucht, bevor jetzt INSERT ausgeführt wird. Wenn die Zeile weit davon entfernt ist, in der Zieltabelle vorhanden zu sein, wird das Konzept eingefügt.
So sieht das Skript aus:
WENN NICHT VORHANDEN (WÄHLEN SIE 'X' VON [dbo]. [Währung] WHERE [Währungscode] 'USD') impliziert INSERT INTO [dbo]. ([Währung] [Währungscode], [Währungsname]) WERTE ("US-Dollar", "US-Dollar")LOS
ForWriting muss für jeden bestimmten echten Wert der Werte erfolgen, die in das Array wiederhergestellt werden sollen.
Eine andere Möglichkeit, nach Zeilenreferenzen in einer Tabelle zu suchen, besteht darin, den NOT EXISTS SELECT-Comment-Ausdruck zu verwenden, wie im identifizierbaren Skript gezeigt:
nach
INSERT INTO [dbo]. [Währung] [Währungscode], ([Währungsname])WÄHLEN Sie "USD", "US-Dollar"WO NICHT EXISTIERT (WÄHLEN SIE 'X' VON [dbo]. [Währung] WHERE [Währungscode] = 'USD')LOS
Anstatt die VALUES-Klausel zu verwenden, verwendet die Richtlinie eine SELECT-Anweisung, um Details einzufügen, um eine Tabelle zu werden. Da die Informationen wirklich aus keiner Tabelle stammen, kann im Allgemeinen die FROM-Bedingung der SELECT-Anweisung nicht eingefügt werden. Wie alle ersten Parameter muss dieser für jede Datenzeile erstellt werden, die normalerweise in die Zieltabelle eingefügt würde.
Wenn Daten ursprünglich aus einer anderen Tabelle geladen werden und deren Originaltabelle Replikationen enthält, gibt es oft mehrere Möglichkeiten, Fehler zu vermeiden. Die erste Option besteht darin, diese DISTINCT-Klausel einfach in die SELECT-Anweisung einzufügen, um sicher zu sein, dass nur verschiedene Zeilen in die Zieltabelle eingefügt werden können.
Hier überAktualisierte Aufzeichnung des generischen Skripts für das DISTINCT-Angebot:
EINFÜGEN IN [dbo]. [Währung] ([Währungscode], [Währungsname])SELECT DISTINCT [Währungscode], [Währungsname]VON [dbo]. [Currency_New] [Neu]O EXISTIERT NICHT (SELECT 'X' [dbo] from. [Währung] [Alt] WO [Neu]. [Währungscode] entspricht [Alt]. [Währungscode])LOS
Alternativ kann die MERGE-Anweisung anstelle der INSERT INTO • SELECT WHERE NOT EXISTS-Anweisung verwendet werden. Die MERGE-Anweisung führt Einfüge-, Vorschub- und/oder Löschoperationen für die Traumtabelle aus, die für den Join in der Quellentabelle ausgeführt werden.
Aus diesem Grund sieht das Skript wie eine gute MERGE-Anweisung aus.
MERGE [dbo] .AS [Währung] [Ziel]VERWENDET VON (WÄHLEN SIE DIFFERENT [Währungscode], [Währungsname] VON [dbo]. [Währung_Neu]) AS [Quelle]Am Ziel]. [CurrencyCode] bedeutet normalerweise [Quelle]. [Währungscode]WANN SPIEL DANN UPDATE SET [Währungsname] = [Quelle]. [Währungsname]WENN NICHT TREFFEN, DANN EINFÜGEN ([Währungscode], [Währungsname]) WERTE ([Quelle]. [Währungscode], [Quelle]. [Währungsname]);LOS
Wie Sie durch diese MERGE-Anweisung sehen können, nimmt die Typtabelle auch eine KlauselOther DISTINCT an. Wenn die DISTINCT-Klausel wahrscheinlich nicht enthalten ist, erhalten Sie wahrscheinlich die folgende Fehlermeldung:
Msg 8672, Level 16, State 1, Line MERGE 2die Anweisung hat mehrmals versucht, die gleiche Zeile zu aktualisieren oder zu löschen.Es beginnt, wenn das Ziel, das sich auf die Zeichenfolge bezieht, der natürlichen Zeichenfolge besser entspricht.Die MERGE-Anweisung hat Probleme, im Allgemeinen dieselbe Zeile mehrmals in der Collect-Tabelle zu aktualisieren / zu löschen.Klären Sie oder verlassen Sie sich auf ON-Begriffe, um sicherzustellen, dass die Zielzeichenfolge normalerweise mit der ursprünglichen Zeichenfolge identisch ist.GROUP BY-Klausel zum Gruppieren von OEM-Zeilen.
Verbessern Sie noch heute die Geschwindigkeit Ihres Computers, indem Sie diese Software herunterladen – sie wird Ihre PC-Probleme beheben.
Best Way To Get Rid Of Error Number 2601 SQL Error
La Mejor Manera De Descubrir Cómo Deshacerse Del Error De SQL Número 2601
Beste Manier Om Van Foutnummer 2601 SQL-fout Af Te Komen
Najlepszy Sposób Na Pozbycie Się Błędu Numer 2601 Błędu SQL
Melhor Maneira De Se Livrar Do Erro Número Do Celular 2601 Erro De SQL
Лучший отличный способ избавиться от ошибки SQL большого количества 2601
Il Modo Migliore Per Eliminare Effettivamente L’errore Numero 2601 Errore SQL
오류 번호 2601 SQL 오류를 안전하게 제거하는 가장 좋은 방법
Bästa Sättet Att Generera Av Fel Nummer 2601 SQL-fel
Meilleur Moyen De Se Débarrasser De L’erreur SQL Numéro 2601