Applies ToSQL Server 2012 Service Pack 3 SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Triệu chứng

Giả định rằng bạn tạo ra một thủ tục được lưu trữ sử dụng con trỏ trên biến số của bảng trong Microsoft SQL Server 2012 hoặc SQL Server 2014. Ngoài ra, thủ tục được lưu trữ Cập Nhật bảng bằng cách sử dụng vị trí hiện tại của tuyên bố cùng với con trỏ. Ví dụ, thủ tục được lưu trữ của bạn có thể trông giống như sau:

CREATE PROCEDURE dbo.usp_TestSP AS  BEGIN  DECLARE @TableVar TABLE (SomeInt INT NULL) INSERT @TableVar VALUES (NULL)  DECLARE @curInt INT, @newInt INT SET @newInt = 1  DECLARE ccc CURSOR LOCAL FOR SELECT SomeInt FROM @TableVar WHERE SomeInt IS NULL  OPEN ccc  FETCH NEXT FROM ccc INTO @curInt UPDATE @TableVar SET SomeInt = @newInt WHERE CURRENT OF cccCLOSE ccc  SELECT * FROM @TableVar END 

Khi bạn thực thi thủ tục được lưu trữ bằng cách sử dụng quy trình được lưu trữ hệ thống sp_refreshsqlmodule , bạn có thể xảy ra vi phạm truy nhập và bạn có thể nhận được các thông báo lỗi giống như sau:

Msg 596, mức 21, trạng thái 1Không thể tiếp tục thực hiện vì phiên là trong trạng thái Kill. Msg 0, mức 20, một lỗi nghiêm trọng xảy ra ở lệnh hiện tại. Kết quả, nếu có, hãy loại bỏ.

Trong trường hợp này, các lỗi tương tự như sau cũng được viết vào Nhật ký lỗi SQL Server:

thời gian ngày tháng. 730 spid51 SqlDumpExceptionHandler: quy trình 51 tạo ra ngoại lệ tử vong c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.date time.730 spid51 * *******************************************************************************date time.730 spid51 *date time.730 spid51 * BEGIN STACK DUMP:date time.730 spid51 * date time spid 51date time.730 spid51 *date time.730 spid51 *date time.730 spid51 * Exception Address = 00007FFC270236D5 Module(sqllang+00000000005036D5)date time.730 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATIONdate time.730 spid51 * Access Violation occurred reading address 0000006F00620074date time.730 spid51 * Input Buffer 136 bytes -date time.730 spid51 * EXECUTE sp_refreshsqlmodule N'[dbo]. [usp_TestSP] ' thời gian ngày tháng. 730 spid51 * thời gian ngày. 730 spid51 *

Giải pháp

Thông tin Cập Nhật tích lũy

Sự cố này đã được khắc phục trong các bản Cập Nhật sau đây:

Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:

Trạng thái

Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Tham khảo

Tìm hiểu về thuật ngữ mà Microsoft sử dụng để mô tả các bản cập nhật phần mềm.

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.