索引超出了数组的范围

我正在使用 SQL Server 2008 R2。它工作得很好。但是最近,我改变了我的主机服务器,我知道他们已经在服务器上安装了 SQL Server 2012

现在的问题是,在通过 SQL Server 2008 R2连接到服务器数据库之后,当我单击任何表名或存储过程时,都会得到错误: Index was outside the bounds of the array. (Microsoft.SqlServer.smo) < br > < br > 所以,是否有任何问题从我这边或它是从服务器端? ? ?如何防止这个问题?

356505 次浏览

Upgrade your SqlServer management studio from 2008 to 2012

Or Download the service packs of SqlServer Management Studio and update probably resolve you solution

You can download the SQL Server Management studio 2012 from below link

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

This is an issue if you are using 2008 management studio tools to connect to a SQL 2012 instance.

I experience this a lot if I am working on one server with SQL 2008, and trying to quickly query another server that is running SQL 2012.

I normally keep my personal workstation on the latest version of management studio (2012 in this case), and am able to administer all servers from there.

The Reason behind the error message is that SQL couldn't show new features in your old SQL server version.

Please upgrade your client SQL version to same as your server Sql version

you must use new version of Management Studio. And also you will got an error 29506. so you should run as Administrator for setup. Look this site. http://shareis.com/post/29506-management-studio-express

I had a similar experience with using SMO via C# with the stack trace:

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

It turned out my versions of the CLR/NCLI/SMO were 10.50.1600.1. Upgrading them to 10.53.6000.34 fixed it - thus allowing the 2008R2 SMO to do many things with 2012 and 2014 servers.

Get them from the feature pack

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

Restarting the Management Studio worked for me.

For me this problem still exists with SSMS version 2016 (13.0.16100.1).

A decent workaround is to not use the 'Right click' -> 'Add table...' dialog, but simply drag the table you want to add from the Object Explorer, onto the Diagram surface. While dragging the mouse icon changes into an 'add' symbol and the table is added when you release the mouse.

Beats having to close SSMS every time.

I found an issue with Diagram and Schema in SQL-Server 2016 that could be useful to the subject. I was editing diagram (related to, and with lot of tables of, the "sales" schema) and added a new table, BUT forgot to declare it schema, so it was with the default "dbo". Then when I returned to, and opened up, the schema "sales" and tried to add an existent table... Bluf! THAT Triggered exactly the same error described in that thread. I even tried the workaround (drag the table) but it didn't work. Suddenly I noticed that the schema was incorrect, I updated it, tried again, and Eureka! the problem was immediately away... Regards.

Restarted worked! I found the same error to add new table to my database diagram on sql server 2016, restarted sql server management studio, finally solved.

It's very old problem with cashed content. MS planning to remove diagrams from SSMS, so they don't care about this. Anyway, solution exists.

Just close Diagrams tab and open it again. Works with SSMS 18.2.

The suggested causes are now proven to be mostly impossible. I'm running SSMS V17.9.2 against SS 2014 and still have the problem. Memory problems have existed with this tool since at least 2006 when I started using SSMS.

Yes, MS 'wants' to get rid of diagramming but users won't let them. I have a feeling they will never fix any of these issues because they want users to be so fed up with the tool that enough of them quit using it and they can abandon it entirely.

Restarting is still a workaround if you can stand doing so numerous times per day.

You have to use latest version with SSMS

You can check latest builds via this page https://sqlserverbuilds.blogspot.com/

Solution: Ignore the error

Just to show that the error does not do much in SSMS version 18.9.2, drag the table to be shown in the diagram from the Object Explorer tab and wait for it to finish loading before you start using it.