2014-04-21 13 views
43

Sto usando SQL Server 2008 R2. Funziona bene. Ma recentemente, ho cambiato il mio server di hosting e sono venuto a sapere che hanno installato SQL Server 2012 sul server.

Ora, problema è che dopo la connessione con il server di database attraverso SQL Server 2008 R2, Quando clicco su qualsiasi nome di tabella o stored procedure, sto ottenendo errore: Index was outside the bounds of the array. (Microsoft.SqlServer.smo)

Quindi, non v'è alcun problema da parte mia o E 'dal server Lato ??? e come posso prevenire questo problema?L'indice era fuori dai limiti della matrice. (Microsoft.SqlServer.Smo)

+0

@ paul.abbott, è obbligatorio ??? –

+0

Puoi procedere con esso, la nuova funzione non sarà disponibile con esso. –

+0

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

risposta

41

Amplia il tuo studio dell'amministrazione SqlServer 2008-2012

O Scarica i service pack di SqlServer Management Studio e aggiornamento probabilmente risolvere voi soluzione

È possibile scaricare lo studio di gestione di SQL Server 2012 dal basso legame

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

+0

Il download di SP3 2008 ha funzionato per me. Grazie! –

6

Questo è un problema se si utilizza 2008 strumenti di Management Studio per Conne ct a un'istanza di SQL 2012.

sperimento questo molto se sto lavorando su un server con SQL 2008, e cercando di interrogare rapidamente un altro server che esegue SQL 2012.

Io di solito mantenere il mio posto di lavoro personale su l'ultima versione di Management Studio (2012 in questo caso) e sono in grado di amministrare tutti i server da lì.

8

il motivo dietro il messaggio di errore è che SQL non ha potuto dimostrare le nuove funzionalità nella versione vecchio server SQL.

Si prega di aggiornare la propria versione di SQL client stesso server SQL versione

1

ho avuto un'esperienza simile con l'utilizzo di SMO tramite C# con l'analisi 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 le mie versioni del CLR/NCLI/SMO erano 10.50.1600.1. L'aggiornamento a 10.53.6000.34 lo ha risolto, consentendo così a SMO 2008R2 di fare molte cose con i server 2012 e 2014.

ottenere da loro il Feature Pack

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

+0

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

20

Il riavvio del Management Studio ha lavorato per me.

14

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

Una soluzione decente è quella di non utilizzare il 'clic destro' -> 'Aggiungi tabella ...' finestra di dialogo, ma è sufficiente trascinare la tabella che si desidera aggiungere dalla Esplora oggetti sulla superficie Diagramma. Mentre si trascina l'icona del mouse si trasforma in un simbolo "aggiungi" e la tabella viene aggiunta quando si rilascia il mouse.

Battute che devono chiudere SSMS ogni volta.

+1

Grazie a @MeanGreen per il suggerimento! Il problema esiste ancora nell'ultimo SSMS v 17.0, ma il lavoro con il trascinamento della tabella funziona ancora! –

+0

Esiste anche in v17.4 –

0

Ho trovato un problema con Diagramma e 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 aggiunto una tabella nuova, MA ho dimenticato di dichiararlo schema, quindi era con il predefinito "dbo". Poi quando sono tornato a, e aperto, lo schema "vendite" e ho cercato di aggiungere una tabella esistente ... Bluf! CHE ha provocato esattamente lo stesso errore descritto in quella discussione. 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, provato di nuovo, ed Eureka! il problema è stato subito lontano ... Saluti.

+1

Benvenuti in [Stack Overflow] (http://stackoverflow.com/)! Per favore leggi [Come scrivere una buona risposta] (http://stackoverflow.com/help/how-to-answer)? –

5

Riavviato lavorato! Ho trovato lo stesso errore per aggiungere una nuova tabella al mio diagramma di database su SQL Server 2016, riavviato SQL Server Management Studio, finalmente risolto.

0

Il riavvio di SQL Server Management Studio (versione 17.4) ha funzionato per me.

+0

Questa è più o meno una ripetizione di [questa risposta esistente] (https://stackoverflow.com/a/39723886). – Pang

Problemi correlati