Index était en dehors des limites du tableau. (Microsoft.SqlServer.smo)

J'utilise SQL Server 2008 R2. Il fonctionne très bien. Mais récemment, j'ai changé mon serveur d'hébergement et j'ai appris qu'ils ont installé SQL Server 2012 sur le serveur.

Maintenant, le problème est qu'après la connexion à la base de données du serveur via SQL Server 2008 R2, lorsque je clique sur un nom de table ou une procédure stockée, je reçois une erreur : Index was outside the bounds of the array. (Microsoft.SqlServer.smo)

Donc, est-il un problème de mon côté ou C'est du Côté Serveur ??? et Comment puis-je éviter ce problème ?

53
demandé sur Jeeten Parmar 2014-04-21 21:28:18

11 réponses

Mettez à niveau votre SqlServer management studio de 2008 à 2012

Ou Téléchargez les service packs de SqlServer Management Studio et mettez à jour probablement vous résoudre la solution

Vous pouvez télécharger le SQL Server Management studio 2012 à partir du lien ci-dessous

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

43
répondu Md.Rajibul Ahsan 2014-08-11 07:03:32

Redémarrer le studio de gestion a fonctionné pour moi.

35
répondu Abisoye Falabi 2016-09-27 11:48:50

Pour moi, ce problème existe toujours avec SSMS version 2016 (13.0.16100.1).

Une solution de contournement décente consiste à ne pas utiliser le "clic droit" - > " ajouter une table...'dialogue, mais faites simplement glisser la table que vous souhaitez ajouter à partir de L'Explorateur D'objets, sur la surface du diagramme. Tout en faisant glisser l'icône de la souris se transforme en un symbole "Ajouter" et la table est ajoutée lorsque vous relâchez la souris.

Bat avoir à fermer SSMS à chaque fois.

25
répondu MeanGreen 2017-01-23 08:50:47

La raison derrière le message d'erreur est que SQL ne pouvait pas afficher de nouvelles fonctionnalités dans votre ancienne version de SQL server.

Veuillez mettre à niveau la version SQL de votre client vers la même version que celle de votre serveur Sql

8
répondu Samith C Valsalan 2015-02-12 07:11:04

Redémarré travaillé! J'ai trouvé la même erreur pour ajouter une nouvelle table à mon diagramme de base de données sur sql server 2016, redémarré sql server management studio, finalement résolu.

7
répondu mernig 2017-07-04 22:12:54

Il s'agit d'un problème si vous utilisez les outils 2008 management studio pour vous connecter à une instance SQL 2012.

Je l'éprouve beaucoup si je travaille sur un serveur avec SQL 2008, et j'essaie d'interroger rapidement un autre serveur qui exécute SQL 2012.

Je garde normalement mon poste de travail personnel sur la dernière version de management studio (2012 dans ce cas), et je suis capable d'administrer tous les serveurs à partir de là.

6
répondu Justin Manning 2015-01-05 12:17:34

Vous devez utiliser la nouvelle version de Management Studio. Et aussi vous aurez une erreur 29506. donc, vous devriez exécuter en tant qu'Administrateur pour l'installation. Regardez ce site. http://shareis.com/post/29506-management-studio-express

2
répondu Çetin DOĞU 2015-03-15 00:52:55

J'ai eu une expérience similaire avec L'utilisation de SMO via C# avec la trace de pile:

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

Il s'est avéré que mes versions du CLR / NCLI / SMO étaient 10.50.1600.1. La mise à niveau vers 10.53.6000.34 l'a corrigé-permettant ainsi au SMO 2008R2 de faire beaucoup de choses avec les serveurs 2012 et 2014.

Les obtenir à partir du pack de fonctionnalités

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

1
répondu GilesDMiddleton 2015-12-03 09:44:36

Mettez à jour votre studio de gestion SQL. Voir le lien ci-dessous de MSDN

Https://support.microsoft.com/en-us/kb/2459027

0
répondu Jaydeep Shil 2015-09-15 13:30:48

J'ai trouvé un problème avec le diagramme et le schéma dans SQL-Server 2016 qui pourrait être utile au sujet. J'éditais un diagramme (lié à, et avec beaucoup de tables de, le schéma" sales") et j'ai ajouté une New table, mais j'ai oublié de le déclarer schéma, donc c'était avec le "dbo"par défaut. Puis, quand je suis retourné et ouvert, le schéma "sales" et j'ai essayé d'ajouter une table existante... Bluf! Cela a déclenché exactement la même erreur décrite dans ce thread. J'ai même essayé la solution de contournement (faites glisser la table) mais il ne fonctionne pas. Soudain, j'ai remarqué que le schéma était incorrect, Je l'ai mis à jour, essayé à nouveau, et Eureka! le problème était immédiatement loin... Égard.

0
répondu Felix Guillermo Ledesma 2017-06-20 18:01:06

Redémarrer SQL Server management studio (Version 17.4) a fonctionné pour moi.

0
répondu Krishna Kaushik 2017-12-19 08:13:56