El índice esta fuera de los límites de la matriz. (Microsoft.SqlServer.smo)

91

Estoy usando SQL Server 2008 R2. Funciona bien. Pero recientemente, cambié mi servidor de alojamiento y supe que se han instalado SQL Server 2012en el servidor.

Ahora, el problema es que después de conectarme con la base de datos del servidor SQL Server 2008 R2, cuando hago clic en cualquier nombre de tabla o procedimiento almacenado Index was outside the bounds of the array. (Microsoft.SqlServer.smo)

, aparece un error: Entonces, ¿hay algún problema de mi parte o es del lado del servidor? y ¿Cómo puedo prevenir este problema?

Jeeten Parmar
fuente
@ paul.abbott, ¿es obligatorio ???
Jeeten Parmar
Puede continuar con él, la nueva función no estará disponible con él.
Samith C Valsalan
1
En nuestro caso, restauramos una base de datos de 2008 R2 en SQL 2016 y tuvimos el mismo problema al intentar usar el diagrama de alguna manera. Después de ejecutar SSMS 2016 13.0.15900.1 como administrador, resolvió el problema. ¡Imagínate!
Marc Roussel

Respuestas:

51

Actualice su estudio de administración SqlServer de 2008 a 2012

O descargue los paquetes de servicio de SqlServer Management Studio y actualice probablemente resuelva su solución

Puede descargar SQL Server Management Studio 2012 desde el siguiente enlace

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

Md.Rajibul Ahsan
fuente
Aún no hay una solución para esto. He tenido este error en todas las versiones de Management Studio, incluido el 2018; es una pena que este error haya estado allí durante tantos años.
MeTitus
98

Reiniciar Management Studio funcionó para mí.

Abisoye Falabi
fuente
5
Parece que el error "fuera de límites" se debe a que Studio almacena en caché la estructura de la base de datos. Después de realizar suficientes cambios en la estructura, no coincidirá con la versión en caché y comenzará a generar el error. Al reiniciar, se reconstruye la caché.
David Austin
Ese fue el problema real, nunca tuve tiempo de actualizar mi respuesta. La actualización corrige el error
Abisoye Falabi
41

Para mí, este problema aún existe con SSMS versión 2016 (13.0.16100.1).

Una solución decente es no usar el cuadro de diálogo 'Clic derecho' -> 'Agregar tabla ...', sino simplemente arrastrar la tabla que desea agregar desde el Explorador de objetos a la superficie del Diagrama. Al arrastrar, el icono del mouse cambia a un símbolo de 'agregar' y la tabla se agrega cuando suelta el mouse.

Es mejor tener que cerrar SSMS cada vez.

MeanGreen
fuente
Los diagramas ya no están disponibles v18.0 preview 4, ¡espero que vuelvan pronto!
MeanGreen
21

Reiniciado funcionó! Encontré el mismo error para agregar una nueva tabla a mi diagrama de base de datos en el servidor SQL 2016, reinicié el estudio de administración del servidor SQL, finalmente resuelto.

mernig
fuente
Si. Tuve este error en SQL Server 2016 Management Studio (v 13.0.16106.4) Todo lo que tenía que hacer era reiniciar la aplicación / interfaz de usuario. Simplemente desconectar el servidor y volver a conectar no funcionó.
joedotnot
7

Este es un problema si está utilizando herramientas de estudio de administración de 2008 para conectarse a una instancia de SQL 2012.

Experimento esto mucho si estoy trabajando en un servidor con SQL 2008 e intento consultar rápidamente otro servidor que ejecuta SQL 2012.

Normalmente mantengo mi estación de trabajo personal en la última versión de Management Studio (2012 en este caso) y puedo administrar todos los servidores desde allí.

Justin Manning
fuente
6

La razón detrás del mensaje de error es que SQL no pudo mostrar nuevas características en su versión anterior del servidor SQL.

Actualice la versión de SQL de su cliente a la misma que la versión de SQL de su servidor

Samith C Valsalan
fuente
2

Ahora se ha demostrado que las causas sugeridas son prácticamente imposibles. Estoy ejecutando SSMS V17.9.2 contra SS 2014 y todavía tengo el problema. Los problemas de memoria han existido con esta herramienta desde al menos 2006 cuando comencé a usar SSMS.

Sí, MS 'quiere' deshacerse de los diagramas, pero los usuarios no se lo permiten. Tengo la sensación de que nunca solucionarán ninguno de estos problemas porque quieren que los usuarios estén tan hartos de la herramienta que muchos de ellos dejen de usarla y puedan abandonarla por completo.

Reiniciar sigue siendo una solución si puede soportar hacerlo varias veces al día.

bielawski
fuente
1

Tuve una experiencia similar con el uso de SMO a través de C # con el seguimiento de la pila:

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

Resultó que mis versiones de CLR / NCLI / SMO eran 10.50.1600.1. Actualizarlos a 10.53.6000.34 lo solucionó, lo que permitió que el SMO 2008R2 hiciera muchas cosas con los servidores de 2012 y 2014.

Consígalos del paquete de funciones

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

GilesDMiddleton
fuente
1
Encontré este enlace para SQL Server 2008 R2 Service Pack 3 para ser más claro en términos de qué instalador descargar support.microsoft.com/en-us/kb/2979597
Justin
0

Encontré un problema con Diagram and Schema en SQL-Server 2016 que podría ser útil para el tema. Estaba editando el diagrama (relacionado con y con muchas tablas del esquema de "ventas") y agregué una nueva tabla, PERO olvidé declararlo como esquema, así que estaba con el "dbo" predeterminado. Luego, cuando volví y abrí el esquema "ventas" e intenté agregar una tabla existente ... ¡Bluf! ESO desencadenó exactamente el mismo error descrito en ese hilo. Incluso probé la solución alternativa (arrastrar la tabla) pero no funcionó. De repente me di cuenta de que el esquema era incorrecto, lo actualicé, lo intenté de nuevo y ¡Eureka! el problema fue de inmediato ... Saludos.

Félix Guillermo Ledesma
fuente
1
¡Bienvenido a Stack Overflow ! Por favor lea ¿Cómo escribo una buena respuesta ?
Saurabh Bhandari
0

Es un problema muy antiguo con el contenido cobrado. MS planea eliminar diagramas de SSMS, por lo que no les importa esto. De todos modos, la solución existe.

Simplemente cierre la pestaña Diagramas y ábrala de nuevo. Funciona con SSMS 18.2.

Tomas Vileikis
fuente