Chỉ mục nằm ngoài giới hạn của Mảng. (Microsoft.SqlServer.smo)


91

Tôi đang sử dụng SQL Server 2008 R2. Nó đang hoạt động tốt. Nhưng gần đây, tôi đã thay đổi máy chủ lưu trữ của mình và tôi biết rằng họ đã cài đặt SQL Server 2012trên Máy chủ.

Bây giờ, Vấn đề là sau khi kết nối với Cơ sở dữ liệu máy chủ thông qua SQL Server 2008 R2, Khi tôi nhấp vào bất kỳ tên bảng nào hoặc Thủ tục đã lưu trữ, tôi gặp lỗi: Index was outside the bounds of the array. (Microsoft.SqlServer.smo)

Vậy, có vấn đề gì từ phía tôi hay là từ phía Máy chủ không ??? và Làm cách nào để ngăn chặn vấn đề này?


@ paul.abbott, có bắt buộc không ???
Jeeten Parmar

Bạn có thể tiếp tục với nó, tính năng mới sẽ không có sẵn với nó.
Samith C Valsalan

1
Trong trường hợp của chúng tôi, chúng tôi đã khôi phục Cơ sở dữ liệu 2008 R2 trong SQL 2016 và chúng tôi gặp sự cố tương tự khi cố gắng sử dụng sơ đồ theo bất kỳ cách nào. Sau khi chạy SSMS 2016 13.0.15900.1 với tư cách là quản trị viên, nó đã giải quyết được sự cố. Đi tìm!
Marc Roussel

Câu trả lời:


51

Nâng cấp studio quản lý SqlServer của bạn từ 2008 đến 2012

Hoặc Tải xuống gói dịch vụ của SqlServer Management Studio và cập nhật có thể giải quyết cho bạn giải pháp

Bạn có thể tải xuống SQL Server Management studio 2012 từ liên kết bên dưới

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


Chưa có một bản sửa lỗi nào cho điều này. Tôi đã gặp lỗi này trong tất cả các phiên bản của quản lý studio bao gồm cả năm 2018 - thật tiếc là lỗi này đã tồn tại nhiều năm rồi.
MeTitus,

98

Khởi động lại Management Studio đã làm việc cho tôi.


5
Có vẻ như lỗi "vượt quá giới hạn" là do Studio bộ nhớ đệm cấu trúc cơ sở dữ liệu. Sau khi bạn thực hiện đủ thay đổi đối với cấu trúc, cấu trúc đó sẽ kém khớp với phiên bản đã lưu trong bộ nhớ cache và bắt đầu tạo ra lỗi. Khởi động lại xây dựng lại bộ nhớ cache.
David Austin

Đó là vấn đề thực sự, tôi không bao giờ có thời gian để cập nhật câu trả lời của mình. Cập nhật các bản sửa lỗi lỗi ngươi
Abisoye Falabi

41

Đối với tôi, sự cố này vẫn tồn tại với SSMS phiên bản 2016 (13.0.16100.1).

Một cách giải quyết tốt là không sử dụng hộp thoại 'Nhấp chuột phải' -> 'Thêm bảng ...', mà chỉ cần kéo bảng bạn muốn thêm từ Trình khám phá đối tượng, lên bề mặt Sơ đồ. Trong khi kéo, biểu tượng chuột thay đổi thành biểu tượng 'thêm' và bảng được thêm khi bạn thả chuột.

Nhịp đập phải đóng SSMS mọi lúc.


Sơ đồ không có sẵn nữa v18.0 preview 4, hy vọng chúng sẽ sớm trở lại!
MeanGreen

21

Đã khởi động lại đã hoạt động! Tôi đã tìm thấy lỗi tương tự để thêm bảng mới vào sơ đồ cơ sở dữ liệu của mình trên máy chủ sql 2016, khởi động lại studio quản lý máy chủ sql, cuối cùng đã được giải quyết.


Đúng. Tôi đã gặp lỗi này trên SQL Server 2016 Management Studio (v 13.0.16106.4) Tất cả những gì tôi phải làm là khởi động lại Ứng dụng / Giao diện người dùng. Chỉ ngắt kết nối Máy chủ và Kết nối lại không hoạt động.
joedotnot

7

Đây là sự cố nếu bạn đang sử dụng các công cụ studio quản lý 2008 để kết nối với phiên bản SQL 2012.

Tôi gặp phải điều này rất nhiều nếu tôi đang làm việc trên một máy chủ với SQL 2008 và cố gắng truy vấn nhanh một máy chủ khác đang chạy SQL 2012.

Tôi thường giữ máy trạm cá nhân của mình trên phiên bản mới nhất của quản lý studio (trong trường hợp này là 2012) và có thể quản lý tất cả các máy chủ từ đó.


6

Lý do đằng sau thông báo lỗi là SQL không thể hiển thị các tính năng mới trong phiên bản máy chủ SQL cũ của bạn.

Vui lòng nâng cấp phiên bản SQL máy khách của bạn lên giống với phiên bản Sql máy chủ của bạn


2

Các nguyên nhân được đề xuất hiện đã được chứng minh là hầu như không thể. Tôi đang chạy SSMS V17.9.2 so với SS 2014 và vẫn gặp sự cố. Các vấn đề về bộ nhớ đã tồn tại với công cụ này ít nhất là từ năm 2006 khi tôi bắt đầu sử dụng SSMS.

Có, MS 'muốn' loại bỏ sơ đồ nhưng người dùng không cho phép. Tôi có cảm giác rằng họ sẽ không bao giờ khắc phục bất kỳ vấn đề nào trong số này vì họ muốn người dùng chán ngấy công cụ đến mức họ bỏ sử dụng nó và họ có thể từ bỏ nó hoàn toàn.

Khởi động lại vẫn là một giải pháp thay thế nếu bạn có thể thực hiện nhiều lần mỗi ngày.



1

Tôi đã có trải nghiệm tương tự khi sử dụng SMO qua C # với dấu vết ngăn xếp:

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

Hóa ra phiên bản CLR / NCLI / SMO của tôi là 10.50.1600.1. Việc nâng cấp chúng lên 10.53.6000.34 đã khắc phục sự cố - do đó cho phép SMO 2008R2 làm được nhiều việc với các máy chủ 2012 và 2014.

Nhận chúng từ gói tính năng

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


1
Tôi tìm thấy liên kết này cho SQL Server 2008 R2 Gói Dịch vụ 3 để rõ ràng hơn về những gì trình cài đặt để tải xuống support.microsoft.com/en-us/kb/2979597
Justin

0

Tôi đã tìm thấy sự cố với Sơ đồ và Lược đồ trong SQL-Server 2016 có thể hữu ích cho chủ đề này. Tôi đang chỉnh sửa sơ đồ (liên quan đến và với rất nhiều bảng của lược đồ "bán hàng") và thêm một bảng mới , NHƯNG quên khai báo lược đồ đó, vì vậy nó có mặc định là "dbo". Sau đó, khi tôi quay lại và mở ra, lược đồ "bán hàng" và cố gắng thêm một bảng tồn tại ... Bluf! ĐÓ đã kích hoạt chính xác cùng một lỗi được mô tả trong chuỗi đó. Tôi thậm chí đã thử cách giải quyết khác (kéo bảng) nhưng nó không hoạt động. Đột nhiên tôi nhận thấy rằng lược đồ không chính xác, tôi đã cập nhật nó, thử lại và Eureka! vấn đề đã được giải quyết ngay lập tức ... Trân trọng.



0

Đó là một vấn đề rất cũ với nội dung tính tiền. MS dự định loại bỏ sơ đồ khỏi SSMS, vì vậy họ không quan tâm đến điều này. Dù sao, giải pháp tồn tại.

Chỉ cần đóng tab Sơ đồ và mở lại. Hoạt động với SSMS 18.2.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.