L'indice era al di fuori dei limiti della matrice. (Microsoft.SqlServer.smo)


91

Sto usando SQL Server 2008 R2. Funziona bene. Ma di recente, ho cambiato il mio server di hosting e sono venuto a sapere che sono stati installati SQL Server 2012su Server.

Ora, il problema è che dopo SQL Server 2008 R2essermi connesso al database del server tramite , quando faccio clic sul nome di una tabella o su una procedura memorizzata, ricevo un errore: Index was outside the bounds of the array. (Microsoft.SqlServer.smo)

quindi, c'è qualche problema da parte mia o è dal lato server ??? e come posso prevenire questo problema?


@ paul.abbott, è obbligatorio ???
Jeeten Parmar

Puoi andare avanti con esso, la nuova funzionalità non sarà disponibile con essa.
Samith C Valsalan

1
Nel nostro caso, abbiamo ripristinato un database 2008 R2 in SQL 2016 e abbiamo avuto lo stesso problema cercando di utilizzare il diagramma in qualsiasi modo. Dopo aver eseguito SSMS 2016 13.0.15900.1 come amministratore, ha risolto il problema. Vai a capire!
Marc Roussel

Risposte:


51

Aggiorna il tuo studio di gestione SqlServer dal 2008 al 2012

Oppure Scarica i service pack di SqlServer Management Studio e l'aggiornamento probabilmente risolverà la tua soluzione

È possibile scaricare SQL Server Management Studio 2012 dal collegamento sottostante

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


Non c'è ancora una soluzione per questo. Ho riscontrato questo errore in tutte le versioni di Management Studio incluso il 2018: è un peccato che questo bug sia presente da così tanti anni.
MeTitus

98

Il riavvio di Management Studio ha funzionato per me.


5
Sembra che l'errore "fuori dai limiti" sia causato da Studio che memorizza nella cache la struttura del database. Dopo aver apportato modifiche sufficienti alla struttura, questa corrisponderà in modo insufficiente alla versione memorizzata nella cache e inizierà a generare l'errore. Il riavvio ricostruisce la cache.
David Austin

Questo era il vero problema, non ho mai avuto il tempo di aggiornare la mia risposta. L'aggiornamento risolve il bug tu
Abisoye Falabi

41

Per me questo problema esiste ancora con SSMS versione 2016 (13.0.16100.1).

Una soluzione alternativa decente è quella di non utilizzare la finestra di dialogo "Fare clic con il pulsante destro del mouse" -> "Aggiungi tabella ...", ma trascinare semplicemente la tabella che si desidera aggiungere dall'Explorer oggetti sulla superficie del diagramma. Durante il trascinamento, l'icona del mouse si trasforma in un simbolo "aggiungi" e la tabella viene aggiunta quando rilasci il mouse.

È meglio dover chiudere SSMS ogni volta.


I diagrammi non sono più disponibili v18.0 preview 4, si spera che torneranno presto!
MeanGreen

21

Riavviato ha funzionato! Ho trovato lo stesso errore per aggiungere una nuova tabella al diagramma del mio database su sql server 2016, riavviato sql server management studio, finalmente risolto.


Sì. Ho riscontrato questo errore su SQL Server 2016 Management Studio (v 13.0.16106.4) Tutto quello che dovevo fare era riavviare l'app / interfaccia utente. La semplice disconnessione del server e la riconnessione non funzionavano.
gioedotnot

7

Questo è un problema se utilizzi gli strumenti di studio di gestione 2008 per connetterti a un'istanza di SQL 2012.

Lo provo molto se lavoro su un server con SQL 2008 e provo a interrogare rapidamente un altro server che esegue SQL 2012.

Normalmente tengo la mia workstation personale sull'ultima versione di Management Studio (2012 in questo caso) e da lì sono in grado di amministrare tutti i server.


6

Il motivo alla base del messaggio di errore è che SQL non poteva mostrare nuove funzionalità nella vecchia versione del server SQL.

Aggiornare la versione SQL del client alla stessa versione SQL del server


2

Le cause suggerite ora si sono dimostrate quasi impossibili. Sto eseguendo SSMS V17.9.2 contro SS 2014 e ho ancora il problema. Esistono problemi di memoria con questo strumento almeno dal 2006, quando ho iniziato a utilizzare SSMS.

Sì, MS "vuole" sbarazzarsi dei diagrammi ma gli utenti non glielo permettono. Ho la sensazione che non risolveranno mai nessuno di questi problemi perché vogliono che gli utenti siano così stufi dello strumento che un numero sufficiente di loro smette di usarlo e possono abbandonarlo del tutto.

Il riavvio è ancora una soluzione alternativa se riesci a farlo numerose volte al giorno.



1

Ho avuto un'esperienza simile con l'utilizzo di SMO tramite C # con la traccia dello stack:

[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()

Si è scoperto che le mie versioni di CLR / NCLI / SMO erano 10.50.1600.1. L'aggiornamento a 10.53.6000.34 lo ha risolto, consentendo così a 2008R2 SMO di fare molte cose con i server 2012 e 2014.

Acquistali dal feature pack

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


1
Ho trovato questo collegamento per SQL Server 2008 R2 Service Pack 3 più chiaro in termini di quale programma di installazione scaricare support.microsoft.com/en-us/kb/2979597
Justin

0

Ho riscontrato un problema con Diagram and Schema in SQL-Server 2016 che potrebbe essere utile all'argomento. Stavo modificando il diagramma (relativo a, e con molte tabelle dello schema "vendite") e ho aggiunto una nuova tabella, MA ho dimenticato di dichiararlo schema, quindi era con il "dbo" predefinito. Poi quando sono tornato e ho aperto lo schema "vendite" e ho provato ad aggiungere una tabella esistente ... Bluf! CHE ha attivato esattamente lo stesso errore descritto in quel thread. Ho anche provato la soluzione alternativa (trascina la tabella) ma non ha funzionato. All'improvviso ho notato che lo schema non era corretto, l'ho aggiornato, ho riprovato ed Eureka! il problema è stato subito risolto ... Saluti.


1
Benvenuto in Stack Overflow ! Si prega di leggere Come scrivo una buona risposta ?
Saurabh Bhandari

0

È un problema molto vecchio con i contenuti incassati. MS sta pianificando di rimuovere i diagrammi da SSMS, quindi non si preoccupano di questo. Comunque, la soluzione esiste.

Basta chiudere la scheda Diagrammi e aprirla di nuovo. Funziona con SSMS 18.2.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.