Dizin, Dizinin sınırları dışındaydı. (Microsoft.SqlServer.smo)


91

Ben kullanıyorum SQL Server 2008 R2. İyi çalışıyor. Ancak son zamanlarda, barındırma sunucumu değiştirdim ve Sunucuya yüklendiklerini öğrendim SQL Server 2012.

Şimdi, Sorun şu ki, Sunucu Veritabanına bağlandıktan sonra SQL Server 2008 R2, herhangi bir tablo adına veya Depolanan Prosedüre tıkladığımda, hata alıyorum: Index was outside the bounds of the array. (Microsoft.SqlServer.smo)

Yani, benim tarafımda herhangi bir sorun var mı yoksa Sunucu Tarafından mı ??? ve bu sorunu nasıl önleyebilirim?


@ paul.abbott, zorunlu mu ???
Jeeten Parmar

Bununla devam edebilirsiniz, yeni özellik onunla birlikte kullanılamayacak.
Samith C Valsalan

1
Bizim durumumuzda, SQL 2016'da bir 2008 R2 Veritabanını geri yükledik ve diyagramı herhangi bir şekilde kullanmaya çalışırken aynı problemi yaşadık. SSMS 2016 13.0.15900.1'i yönetici olarak çalıştırdıktan sonra sorunu çözdü. Şekle bak!
Marc Roussel

Yanıtlar:


51

SqlServer yönetim stüdyonuzu 2008'den 2012'ye yükseltin

Veya SqlServer Management Studio'nun hizmet paketlerini indirin ve güncelleme muhtemelen çözümünüzü çözecektir

SQL Server Management Studio 2012'yi aşağıdaki bağlantıdan indirebilirsiniz.

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


Bunun için henüz bir düzeltme yok. 2018 de dahil olmak üzere tüm yönetim stüdyosu sürümlerinde bu hatayı yaşadım - bu hatanın uzun yıllardır orada olması utanç verici.
MeTitus

Yıl 2020 ve hala düzeltilmedi.
Antonín Lejsek

99

Management Studio'yu yeniden başlatmak benim için çalıştı.


6
"Sınırların dışında" hatası Studio'nun veritabanı yapısını önbelleğe almasından kaynaklanıyor gibi görünüyor. Yapıda yeterince değişiklik yaptıktan sonra, önbelleğe alınan sürümle tam olarak eşleşmeyecek ve hatayı oluşturmaya başlayacaktır. Yeniden başlatmak önbelleği yeniden oluşturur.
David Austin

Asıl sorun buydu, cevabımı güncellemek için hiç zamanım olmadı. Güncelleme, hatayı düzeltir
Abisoye Falabi

Ayrıca SQL Server Management Studio'nun (SSMS) v18.6 sürümünde de aynı hatayı aldım. Çözüm, uygulamadan çıkıp yeniden başlamaktır.
Jonathan Mendoza

42

Benim için bu sorun hala SSMS sürüm 2016 (13.0.16100.1) ile var.

İyi bir çözüm, 'Sağ tıklama' -> 'Tablo ekle ...' iletişim kutusunu kullanmamak, ancak eklemek istediğiniz tabloyu Nesne Gezgini'nden Diyagram yüzeyine sürüklemektir. Fare simgesini sürüklerken bir 'ekle' sembolüne dönüşür ve fareyi bıraktığınızda tablo eklenir.

Her seferinde SSMS'yi kapatmak zorunda kalıyor.


Diyagramlar artık mevcut değil v18.0 önizleme 4, umarım yakında geri gelirler!
MeanGreen

22

Yeniden başlatıldı çalıştı! Sql server 2016'daki veritabanı diyagramıma yeni tablo eklemek için aynı hatayı buldum, sql server management stüdyosunu yeniden başlattım ve sonunda çözüldü.


Evet. SQL Server 2016 Management Studio'da bu hatayı aldım (v 13.0.16106.4) Tek yapmam gereken Uygulamayı / UI'yi yeniden başlatmaktı. Sadece Sunucunun bağlantısını kesmek ve Yeniden Bağlanmak işe yaramadı.
2018

7

SQL 2012 örneğine bağlanmak için 2008 yönetim stüdyosu araçlarını kullanıyorsanız bu bir sorundur.

SQL 2008 ile bir sunucu üzerinde çalışıyorsam ve SQL 2012 çalıştıran başka bir sunucuyu hızlı bir şekilde sorgulamaya çalışıyorsam, bunu çok yaşıyorum.

Normalde kişisel iş istasyonumu yönetim stüdyosunun en son sürümünde tutuyorum (bu durumda 2012) ve tüm sunucuları buradan yönetebiliyorum.


6

Hata mesajının arkasındaki sebep, SQL'in eski SQL sunucusu sürümünüzde yeni özellikleri gösterememesidir.

Lütfen istemci SQL sürümünüzü sunucunuzun Sql sürümüyle aynı olacak şekilde yükseltin


2

Önerilen nedenlerin artık çoğunlukla imkansız olduğu kanıtlanmıştır. SSMS V17.9.2'yi SS 2014'e karşı çalıştırıyorum ve hala sorun yaşıyorum. SSMS kullanmaya başladığım en az 2006 yılından beri bu araçta bellek sorunları var.

Evet, MS diyagramdan kurtulmak istiyor ama kullanıcılar buna izin vermiyor. Bu sorunların hiçbirini asla çözmeyeceklerini hissediyorum çünkü kullanıcıların araçtan o kadar bıkmalarını istiyorlar ki, yeterince kişi onu kullanmayı bırakıyor ve tamamen terk edebiliyorlar.

Günde birçok kez bunu yapmaya dayanabiliyorsanız, yeniden başlatmak hala bir geçici çözümdür.



1

Yığın izleme ile C # aracılığıyla SMO kullanma konusunda benzer bir deneyim yaşadım:

[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 sürümlerimin 10.50.1600.1 olduğu ortaya çıktı. Bunları 10.53.6000.34'e yükseltmek sorunu düzeltti - böylece 2008R2 SMO'nun 2012 ve 2014 sunucularında birçok şey yapmasına izin verdi.

Bunları özellik paketinden alın

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


1
SQL Server 2008 R2 Service Pack 3 için bu bağlantıyı hangi yükleyicinin indirileceği konusunda daha net buldum support.microsoft.com/en-us/kb/2979597
Justin

0

Konu için yararlı olabilecek SQL-Server 2016'da Diyagram ve Şema ile ilgili bir sorun buldum. Diyagramı düzenliyordum ("satış" şemasıyla ilgili ve birçok tabloyla birlikte ) ve yeni bir tablo ekledim , ANCAK bunu şema olarak bildirmeyi unuttum, bu nedenle varsayılan "dbo" ile yapıldı. Sonra döndüğümde ve "satış" şemasını açtığımda ve var olan bir tablo eklemeye çalıştım ... Bluf! BU, bu iş parçacığında açıklanan aynı hatayı tetikledi. Hatta geçici çözümü denedim (tabloyu sürükleyin) ama işe yaramadı. Aniden şemanın yanlış olduğunu fark ettim, onu güncelledim, tekrar denedim ve Eureka! sorun hemen uzaklaştı ... Saygılarımızla.



0

Bozdurulmuş içerikle ilgili çok eski bir problem. MS, diyagramları SSMS'den kaldırmayı planlıyor, bu yüzden bunu umursamıyorlar. Her neyse, çözüm var.

Sadece Diyagramlar sekmesini kapatın ve tekrar açın. SSMS 18.2 ile çalışır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.