2016-09-21 13 views
6

Hôm nay tôi đã cài đặt phiên bản 13.0.15800.18 của Microsoft SQL Server Management Studio (SSMS) [2016-09-20, 16.4] và bây giờ từ chối chỉnh sửa các thủ tục được lưu trữ của tôi. Tôi thậm chí đã thử một phiên bản cũ hơn một chút trên máy tính khác của tôi để đảm bảo, và họ chỉ mở tốt ở đó. Tôi nhận được lỗi:SSMS ngừng tải các thủ tục đã lưu trữ của tôi sau khi cập nhật

enter image description here

Script failed for StoredProcedure 'xyz'. (Microsoft.SqlServer.Smo)

Additional information:

Syntax error in TextHeader of StoredProcedure 'xyz'. (Microsoft.SqlServer.Smo)

Một số bài viết cũ (1, 2, 3) nói chuyện trực tuyến về vấn đề này được gây ra bởi có lồng ý kiến ​​trước khi "ALTER THỦ TỤC" (hoặc chỉ nói chung trong thủ tục ở đâu đó). Trong trường hợp của tôi, không có kịch bản nào của tôi mở sau bản cập nhật SSMS mới nhất này. Tôi xem một kịch bản đơn giản của tôi trên máy tính khác với phiên bản cũ của SSMS, và những nhận xét duy nhất trong toàn bộ sự việc là một lời nhận xét tự động tạo ra đơn giản mà đọc:

/****** Object: StoredProcedure [dbo].[xyz] Script Date: 9/21/2016 12:55:48 PM ******/

Có bất cứ ai khác chạy vào vấn đề này sau khi bản cập nhật năm 2016-09-20 của SSMS và có ai có giải pháp không?

Cập nhật 1:lhsoftware 's tip (bên dưới) của việc sử dụng Tạo Để công trình mở thủ tục. Tôi đã thử sửa đổi một trong các quy trình đơn giản để hoàn toàn không có nhận xét nào cả và tôi vẫn gặp lỗi "tập lệnh không thành công" khi cố gắng Sửa đổi! Tôi thậm chí đã kiểm tra quy trình này sau đó với sp_helptext và thực sự nó không chứa dấu gạch chéo (/) hoặc dấu sao (*) nào.

Cập nhật 2: Microsoft đã chính thức hủy bỏ bản cập nhật, với thông báo sau (tìm thấy here):

There is a known issue with the SSMS 16.4 release and we have rolled back the download to SSMS 16.3. We will update the download link when the issue has been resolved.

If you have installed SSMS 16.4 and would like to revert to SSMS 16.3, you must uninstall SSMS 16.4 prior to installing SSMS 16.3.

Cập nhật 3: Các lỗi đã được giải quyết trong phiên bản 16.4.1 (13,0. 15900.1). Đối với tôi, cả hai Sửa đổiThay đổi thành hoạt động lại kể từ khi cài đặt 16.4.1.

+1

sử dụng sp_helptext và tìm kiếm */trong các ý kiến. Đọc bài này: http://www.sqlservercentral.com/Forums/Topic738639-149-1.aspx –

+0

@RicardoC: Tôi vừa thử * sp_helptext * trên một số quy trình và nhiều trong số đó không có gì hơn một số nhận xét dựa trên dòng bắt đầu với "--". Các thủ tục này không có dấu gạch chéo (/) hoặc dấu sao (*) ở bất kỳ đâu trong chúng. Một số dòng chú thích có dấu bằng (=) được sử dụng cho thẩm mỹ. – Michael

+0

Tôi có cùng sự cố với SSMS 13.00.15800.18 được cài đặt hôm qua. Trên máy khác có SSMS 13.0.15700.28 nó hoạt động tốt. –

Trả lời

1

"Quy trình được lưu trữ tập lệnh dưới dạng> Tạo thành" sẽ hoạt động. Và bạn có thể tự thay đổi nó thành Alter. Đề xuất của jhipp cũng hoạt động.

Lưu ý:

"Script Stored Procedure As> Alter Để" sẽ trở lại với lỗi tương tự như "Sửa đổi"

+1

Cảm ơn lời khuyên. Tôi đã thử * Alter To * kể từ khi tôi sử dụng để sử dụng đó để tránh một trục trặc trong một phiên bản cũ của SSMS khi chọn * Sửa đổi *. * Create To * cho phép tôi ít nhất là mở các thủ tục, mặc dù gây phiền nhiễu, vẫn nhận được công việc làm. – Michael

+1

@Michael sự khác biệt duy nhất giữa ba lệnh này là lần đầu tiên sử dụng 'CREATE' và * không * cho phép bạn vô tình sửa đổi thủ tục được lưu trữ. Đó là lý do tại sao tôi thường thích 'Tạo Tới', thực hiện bất kỳ thay đổi nào tôi cần và thay đổi' TẠO' thành 'ALTER' chỉ khi hoàn thành –

+1

@PanagiotisKanavos: Tôi biết ý của bạn là gì. Nói về nguy hiểm, các phiên bản cũ của SSMS sẽ thực hiện bất kỳ văn bản nào được chọn khi nhấn F5. Ví dụ, nếu bạn đã chọn "DELETE FROM xyz" trong thủ tục của bạn và nhấn F5, những điều xấu có thể xảy ra. – Michael

0

Ngoài ra, thay vì Sửa đổi SP từ SSMS, hãy thử viết mã là Alter To Cửa sổ truy vấn mới.

+0

* Thay đổi thành * được (về cơ bản) cùng lỗi với * Sửa đổi *, nhưng * Tạo thành * hoạt động như được đề xuất bởi * lhsoftware *. – Michael

+0

Điều cần biết. Cảm ơn bạn! –

1

Điều này cũng xảy ra với tôi - có vẻ như đây là sự cố thường gặp với bản cập nhật mới nhất.

Ai đó đăng nhập một lỗi cho MS mà đã có một số hoạt động mà bạn có thể làm theo ở đây: https://connect.microsoft.com/SQLServer/Feedback/Details/3103831

Một cách giải quyết hiện nay là để cập nhật Tools -> Options -> SQL Server Object Explorer -> Scripting -> Chuyển đổi user- các kiểu dữ liệu được định nghĩa cho các kiểu cơ sở = True, tuy nhiên điều này có thể có một số hậu quả không mong muốn.

Tôi hiện đang sử dụng SSMS 2014 trong thời gian chờ đợi. Hy vọng rằng họ nhận được một sửa chữa ra một cách nhanh chóng (mặc dù tôi không vượt qua ngón tay của tôi).

+0

Cảm ơn bạn đã tìm thấy báo cáo lỗi. Phát hiện này cho tôi biết nó không chỉ là tôi, và cho bài viết của tôi thêm sự tin cậy. – Michael

+0

Microsoft đã hủy bỏ bản cập nhật, như tôi đã bao gồm trong câu hỏi của tôi. – Michael

+0

Lỗi đã được giải quyết trong phiên bản 16.4.1. – Michael

0

Đó là một lỗi và tôi hy vọng sẽ có một sửa chữa nhanh chóng. Cách giải quyết mà tôi sử dụng là: Sử dụng tùy chọn CREATE script và tự thay đổi CREATE thành ALTER. Được đề xuất ở đây: https://connect.microsoft.com/SQLServer/Feedback/Details/3103831.

đội
+0

Lỗi đã được giải quyết trong phiên bản 16.4.1. – Michael

2

Microsoft SQL phát hành một bản cập nhật (phiên bản 13.0.15900.1) mà giải quyết vấn đề này: (Download SQL Server Management Studio (16.4.1))

Lưu ý rằng cách giải quyết cho phiên bản 13.0.15800.18: Tools -> Options -> SQL Server Object Explorer -> Scripting -> Chuyển đổi các kiểu dữ liệu do người dùng định nghĩa với các loại cơ sở = True

Có thêm "EXECUTE AS Caller" thủ tục lưu trữ và chức năng vô hướng

khi bạn cài đặt phiên bản: 13.0.15800.18 ngay cả khi bạn gỡ bỏ cài đặt và cài đặt phiên bản cũ hơn (Previous SQL Server Management Studio Releases) vấn đề tiếp tục

Các vấn đề liên quan