Индекс находился вне границ массива. (Microsoft.От SQLServer.модель SMO)

Я использую SQL Server 2008 R2. Он работает нормально. Но недавно я изменил свой хостинг-сервер, и я узнал, что они установили SQL Server 2012 на сервере.

Теперь проблема в том, что после подключения к базе данных сервера через SQL Server 2008 R2, когда я нажимаю на любое имя таблицы или хранимую процедуру, я получаю ошибку:Index was outside the bounds of the array. (Microsoft.SqlServer.smo)

Итак, есть ли проблема с моей стороны или со стороны сервера ??? и как я могу предотвратить эту проблему ?

11 ответов


обновите SQLServer management studio с 2008 по 2012 год

или Загрузите пакеты обновления SQLServer Management Studio и обновите, вероятно, решение

вы можете скачать SQL Server Management studio 2012 по ссылке

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


перезапуск студии управления работал для меня.


для меня эта проблема все еще существует с SSMS версии 2016 (13.0.16100.1).

достойное решение-не использовать 'щелкните' -> 'добавить таблицу... диалог, но просто перетащите таблицу, которую вы хотите добавить в Обозревателе объектов на диаграмме. При перетаскивании значка мыши изменяется на символ "добавить", и таблица добавляется при отпускании мыши.

бьет, чтобы закрыть SSMS каждый раз.


причина сообщения об ошибке заключается в том, что SQL не может отображать новые функции в старой версии SQL server.

пожалуйста, обновите клиентскую версию SQL до такой же, как и серверная версия Sql


перезапустить работал! Я нашел ту же ошибку, чтобы добавить новую таблицу в мою диаграмму базы данных на sql server 2016, перезапустил SQL server management studio, наконец, решил.


это проблема, если вы используете 2008 management studio tools для подключения к экземпляру SQL 2012.

Я испытываю это много, если я работаю на одном сервере с SQL 2008 и пытаюсь быстро запросить другой сервер, на котором работает SQL 2012.

обычно я держу свою личную рабочую станцию на последней версии management studio (2012 в этом случае) и могу администрировать все серверы оттуда.


необходимо использовать новую версию Management Studio. А также есть ошибка 29506. поэтому вы должны работать как администратор для установки. Посмотрите на этот сайт. http://shareis.com/post/29506-management-studio-express


У меня был аналогичный опыт использования SMO через C# с трассировкой стека:

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

оказалось, что мои версии CLR/NCLI / SMO были 10.50.1600.1. Обновление их до 10.53.6000.34 исправило это - таким образом, позволяя SMO 2008R2 делать много вещей с серверами 2012 и 2014.

получить их из пакета функций

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


обновите среду SQL Management studio. См. ссылку ниже из MSDN

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


Я нашел проблему с диаграммой и схемой в SQL-Server 2016, которая может быть полезна для субъекта. Я редактировал диаграмму (связанную и с большим количеством таблиц схемы "продажи") и добавил new таблица, но забыл объявить ее схемой, поэтому она была с "dbo" по умолчанию. Затем, когда я вернулся и открыл, схема "продажи" и попытался добавить существующую таблицу... Bluf! Это вызвало точно такую же ошибку, описанную в этом потоке. Я даже попробовал обходной путь (drag стол) , но это не сработало. Вдруг я заметил, что схема неверна, обновил ее, попробовал еще раз, и Эврика! проблема тут же исчезла... С уважением.


перезапуск SQL Server management studio (версия 17.4) работал для меня.