KB2950189 - KHẮC PHỤC: Vi phạm truy nhập xảy ra khi bạn thực thi truy vấn cập nhật trên bảng có trình kích hoạt DML trong SQL Server

Áp dụng cho
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard 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ả sử bạn có bảng có trình kích hoạt DML trong Microsoft SQL Server 2008 R2, SQL Server 2012 hoặc SQL Server 2014 và trong trình kích hoạt đó, bạn nối bảng đã chèn/xóa với các bảng khác. Khi bạn thực thi câu lệnh DML trên bảng này, vi phạm truy nhập có thể xảy ra trong quá trình biên dịch kích hoạt và bạn nhận được lỗi sau đây:

Lưu ý

Đã xảy ra lỗi nghiêm trọng trên lệnh hiện tại. Kết quả, nếu có, nên bị loại bỏ.

Ngoài ra, các lỗi sau được ghi trong nhật ký lỗi SQL Server:

Lưu ý

<Ngày,><Thời gian>, spid# ***Tab xếp chồng Dump đang được gửi đến <FilePath>\SQLDumpxxx.txt
<Ngày Giờ><:> spid# SqlDumpExceptionHandler: Quy trình # đã tạo ra ngoại lệ nghiêm trọng c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server sắp chấm dứt quá trình này.
<Ngày,><Giờ> spid# * *******************************************************************************
<Ngày,><Thời gian> spid# *
<Ngày,><Giờ> spid# * BẮT ĐẦU KẾT XUẤT NGĂN XẾP:
<Ngày Giờ><spid> # * <Ngày Giờ><spid> #
<Ngày,><Thời gian> spid# *
<Ngày,><Thời gian> spid# *
<Ngày,><Thời gian> spid# * Địa chỉ Ngoại lệ = 0000000009E4F2A Module(sqlservr+00000000002D4F2A)
<Ngày,><Thời gian> spid# * Mã Ngoại lệ = c0000005 EXCEPTION_ACCESS_VIOLATION
<Ngày,><Giờ spid> # * Đã xảy ra Vi phạm truy cập, địa chỉ ghi 000000000000000000000000000000000000000000000000000000000000000000000000
<Ngày,><Thời gian> spid# * Bộ đệm Đầu vào: 510 byte -
<Ngày,><Thời gian> spid# * SQL_query_code

Giải pháp

Sự cố này được khắc phục lần đầu tiên trong bản cập nhật tích lũy tiếp theo của SQL Server.

Bản cập nhật tích lũy 1 cho SQL Server 2012 SP2 /en-us/help/2976982

Cập nhật Tích lũy 2 cho SQL Server 2014 /en-us/help/2967546

Cập nhật tích lũy 10 cho SQL Server 2012 SP1 /en-us/help/2954099

Bản cập nhật tích lũy 12 cho SQL Server 2008 R2 SP2 /en-us/help/2938478

Giới thiệu về các bản cập nhật tích lũy cho SQL Server

Mỗi bản cập nhật tích lũy mới dành cho SQL Server chứa tất cả các bản sửa lỗi nóng và bản sửa lỗi bảo mật được tích hợp trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất cho SQL Server:

      

Giải pháp thay thế

Để tránh sự cố này, không sử dụng bảng đã chèn/xóa trực tiếp trong truy vấn liên kết bảng với các bảng khác, thay vào đó, hãy lưu bộ đệm ẩn trong bảng tạm thời và sử dụng bảng tạm thời trong truy vấn.

Trạng thái

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