Индекс находился вне границ массива. (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 53

11 ответов:

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

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

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

Microsoft® SQL Server® 2012 Expresshttp://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 для подключения к экземпляру 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"по умолчанию. Затем, когда я вернулся и открыл схему "продажи" и попытался добавить существующую таблицу... Блеф! Это вызвало точно такую же ошибку, описанную в этом потоке. Я даже попробовал обходной путь (перетащить таблицу), но это не сработало. Вдруг я заметил, что схема была неправильной, я обновил ее, попробовал еще раз, и Эврика! проблема была немедленно устранена... С уважением.

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