Index war außerhalb der Grenzen des Arrays. (Microsoft.SqlServer.smo)


91

Ich benutze SQL Server 2008 R2. Es funktioniert gut. Aber vor kurzem habe ich meinen Hosting-Server geändert und festgestellt, dass sie SQL Server 2012auf dem Server installiert sind .

Das Problem ist nun, dass nach dem Herstellen einer Verbindung mit der Serverdatenbank über SQL Server 2008 R2Wenn ich auf einen Tabellennamen oder eine gespeicherte Prozedur klicke, eine Fehlermeldung angezeigt wird: Index was outside the bounds of the array. (Microsoft.SqlServer.smo)

Gibt es also ein Problem von meiner Seite oder von der Serverseite? und wie kann ich dieses Problem verhindern?


@ paul.abbott, ist es obligatorisch ???
Jeeten Parmar

Sie können damit fortfahren, neue Funktionen sind damit nicht verfügbar.
Samith C Valsalan

1
In unserem Fall haben wir eine 2008 R2-Datenbank in SQL 2016 wiederhergestellt und hatten das gleiche Problem beim Versuch, das Diagramm in irgendeiner Weise zu verwenden. Nach dem Ausführen von SSMS 2016 13.0.15900.1 als Administrator wurde das Problem behoben. Stelle dir das vor!
Marc Roussel

Antworten:


51

Aktualisieren Sie Ihr SqlServer Management Studio von 2008 auf 2012

Oder laden Sie die Service Packs von SqlServer Management Studio herunter und aktualisieren Sie wahrscheinlich Ihre Lösung

Sie können das SQL Server Management Studio 2012 über den folgenden Link herunterladen

Microsoft® SQL Server® 2012 Express http://www.microsoft.com/en-us/download/details.aspx?id=29062


Es gibt noch keine Lösung dafür. Ich hatte diesen Fehler in allen Versionen von Management Studio, einschließlich 2018 - es ist eine Schande, dass dieser Fehler schon so viele Jahre besteht.
MeTitus

97

Das Neustarten des Management Studios hat bei mir funktioniert.


5
Es scheint, dass der Fehler "außerhalb der Grenzen" durch das Zwischenspeichern der Datenbankstruktur durch Studio verursacht wird. Nachdem Sie genügend Änderungen an der Struktur vorgenommen haben, stimmt diese nicht mehr mit der zwischengespeicherten Version überein und generiert den Fehler. Durch einen Neustart wird der Cache neu erstellt.
David Austin

Das war das eigentliche Problem, ich hatte nie Zeit, meine Antwort zu aktualisieren. Das Aktualisieren behebt den Fehler, den du
Abisoye Falabi

41

Für mich besteht dieses Problem immer noch mit der SSMS-Version 2016 (13.0.16100.1).

Eine gute Lösung besteht darin, nicht das Dialogfeld "Rechtsklick" -> "Tabelle hinzufügen ..." zu verwenden, sondern einfach die Tabelle, die Sie hinzufügen möchten, aus dem Objekt-Explorer auf die Diagrammoberfläche zu ziehen. Beim Ziehen ändert sich das Maussymbol in ein 'Hinzufügen'-Symbol und die Tabelle wird hinzugefügt, wenn Sie die Maus loslassen.

Es ist besser, jedes Mal SSMS schließen zu müssen.


Diagramme sind nicht mehr verfügbar v18.0 Vorschau 4, hoffentlich sind sie bald zurück!
MeanGreen

20

Neustart funktioniert! Ich habe den gleichen Fehler beim Hinzufügen einer neuen Tabelle zu meinem Datenbankdiagramm auf SQL Server 2016 gefunden, das SQL Server Management Studio neu gestartet und schließlich behoben.


Ja. Ich hatte diesen Fehler in SQL Server 2016 Management Studio (v 13.0.16106.4). Ich musste lediglich die App / Benutzeroberfläche neu starten. Nur das Trennen des Servers und das erneute Verbinden funktionierten nicht.
Joedotnot

7

Dies ist ein Problem, wenn Sie 2008 Management Studio-Tools verwenden, um eine Verbindung zu einer SQL 2012-Instanz herzustellen.

Dies tritt häufig auf, wenn ich mit SQL 2008 auf einem Server arbeite und versuche, schnell einen anderen Server abzufragen, auf dem SQL 2012 ausgeführt wird.

Normalerweise behalte ich meine persönliche Workstation auf der neuesten Version von Management Studio (in diesem Fall 2012) und kann von dort aus alle Server verwalten.


6

Der Grund für die Fehlermeldung ist, dass SQL in Ihrer alten SQL Server-Version keine neuen Funktionen anzeigen konnte.

Bitte aktualisieren Sie Ihre Client-SQL-Version auf die gleiche wie Ihre Server-SQL-Version


2

Die vorgeschlagenen Ursachen haben sich nun als größtenteils unmöglich erwiesen. Ich verwende SSMS V17.9.2 gegen SS 2014 und habe immer noch das Problem. Speicherprobleme bestehen mit diesem Tool seit mindestens 2006, als ich anfing, SSMS zu verwenden.

Ja, MS möchte Diagramme entfernen, aber Benutzer lassen sie nicht zu. Ich habe das Gefühl, dass sie keines dieser Probleme beheben werden, weil sie möchten, dass Benutzer das Tool so satt haben, dass genug von ihnen es nicht mehr verwenden und es ganz aufgeben können.

Ein Neustart ist immer noch eine Problemumgehung, wenn Sie dies mehrmals täglich tun können.



1

Ich hatte eine ähnliche Erfahrung mit der Verwendung von SMO über C # mit dem Stack-Trace:

[1896] System.IndexOutOfRangeException: Index was outside the bounds of the array. 
[1896]    at Microsoft.SqlServer.Management.Smo.BitStorage.SetBit(Int32 itemIndex, BitIndex bitIndex, Boolean value) 
[1896]    at Microsoft.SqlServer.Management.Smo.SqlSmoObject.AddObjectPropsFromDataReader(IDataReader reader, Boolean skipIfDirty, Int32 startColIdx, Int32 endColIdx) 
[1896]    at Microsoft.SqlServer.Management.Smo.SqlSmoObject.ImplInitialize(String[] fields, OrderBy[] orderby) 
[1896]    at Microsoft.SqlServer.Management.Smo.SqlSmoObject.Initialize(Boolean allProperties) 
[1896]    at Microsoft.SqlServer.Management.Smo.SqlSmoObject.OnPropertyMissing(String propname, Boolean useDefaultValue) 
[1896]    at Microsoft.SqlServer.Management.Smo.PropertyCollection.RetrieveProperty(Int32 index, Boolean useDefaultOnMissingValue) 
[1896]    at Microsoft.SqlServer.Management.Smo.PropertyCollection.GetValueWithNullReplacement(String propertyName, Boolean throwOnNullValue, Boolean useDefaultOnMissingValue) 
[1896]    at Microsoft.SqlServer.Management.Smo.Information.get_MasterDBPath()

Es stellte sich heraus, dass meine Versionen von CLR / NCLI / SMO 10.50.1600.1 waren. Durch ein Upgrade auf 10.53.6000.34 wurde das Problem behoben, sodass das SMO 2008R2 viele Funktionen mit Servern von 2012 und 2014 ausführen kann.

Holen Sie sie sich aus dem Feature Pack

https://www.microsoft.com/en-gb/download/details.aspx?id=44272


1
Ich fand diesen Link für SQL Server 2008 R2 Service Pack 3 klarer in Bezug auf das Installationsprogramm zum Herunterladen von support.microsoft.com/en-us/kb/2979597
Justin

0

Ich habe in SQL-Server 2016 ein Problem mit Diagramm und Schema gefunden, das für das Thema hilfreich sein könnte. Ich habe das Diagramm bearbeitet (bezogen auf und mit vielen Tabellen des "sales" -Schemas) und eine neue Tabelle hinzugefügt , ABER ich habe vergessen, es als Schema zu deklarieren, also war es mit dem Standard "dbo". Als ich dann zu dem Schema "sales" zurückkehrte und es öffnete und versuchte, eine vorhandene Tabelle hinzuzufügen ... Bluf! DAS hat genau den gleichen Fehler ausgelöst, der in diesem Thread beschrieben wurde. Ich habe sogar versucht, das Problem zu umgehen (Tabelle ziehen), aber es hat nicht funktioniert. Plötzlich bemerkte ich, dass das Schema falsch war, ich aktualisierte es, versuchte es erneut und Eureka! Das Problem war sofort weg ... Grüße.



0

Es ist ein sehr altes Problem mit eingelösten Inhalten. MS plant, Diagramme aus SSMS zu entfernen, daher ist ihnen dies egal. Auf jeden Fall gibt es eine Lösung.

Schließen Sie einfach die Registerkarte Diagramme und öffnen Sie sie erneut. Funktioniert mit SSMS 18.2.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.