KB2412203 - Thông báo lỗi "Chèn hàng loạt với một tập kết quả nổi bật khác nên được chạy với XACT_ABORT bật" có thể xảy ra khi bạn chạy giao dịch DTC hoặc MARS trong SQL Server 2008 hoặc SQL Server 2008 R2

Áp dụng cho
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Workgroup SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Workgroup

Microsoft phân phối các bản sửa lỗi Microsoft SQL Server 2008 và Microsoft SQL Server 2008 R2 như một tệp có thể tải xuống. Vì các bản sửa lỗi mang tính tích lũy, mỗi bản phát hành mới đều chứa toàn bộ hotfix và tất cả bản sửa lỗi bảo mật có trong bản phát hành sửa lỗi SQL Server 2008 hoặc SQL Server 2008 R2 trước đó.

Triệu chứng

Hãy cân nhắc các trường hợp sau:

  • Bạn chạy một ứng dụng Microsoft SQL Server có cấu hình Trình điều phối Giao tác Phân phối (DTC) hoặc giao dịch Nhiều Tập Kết quả Hiện hoạt (MARS).

    Ví dụ: bạn chạy Dịch vụ Tích hợp SQL Server khởi động giao dịch DTC hoặc MARS.

  • Bạn bắt đầu thao tác TẢI HÀNG LOẠT như một phần của giao dịch DTC hoặc MARS đến bảng đích. Tùy chọn FIRE_TRIGGERS không được chỉ định trong câu lệnh BULK INSERT của thao tác BULK LOAD.

    Lưu ý: THAO TÁC TẢI HÀNG LOẠT sẽ chạy câu lệnh INSERT Hàng loạt.

  • Bạn bắt đầu một thao tác TẢI HÀNG LOẠT khác hoặc một thao tác ngôn ngữ tác động dữ liệu tiêu chuẩn (DML) cho một bảng đích khác trong khi thao tác TẢI Hàng loạt đầu tiên đang chạy. Các hoạt động song song này đều nằm trong cùng một giao dịch DTC hoặc MARS. .

Trong trường hợp này, bạn có thể nhận được thông báo lỗi sau:

Lưu ý

Lỗi: 595, Mức độ nghiêm trọng: 16, Trạng thái: 1
Chèn Hàng loạt với một tập hợp kết quả nổi bật khác nên được chạy với XACT_ABORT bật.

Nguyên nhân

Sự cố này xảy ra vì SQL Server phát hiện sai sự cố đình trệ trên MARS. SQL Server tránh được sự bế tắc có thể xảy ra khi bạn bắt đầu một giao dịch MARS hoặc DTC. Tuy nhiên, SQL Server không kiểm tra xem tùy chọn FIRE_TRIGGERS có được chỉ định trong câu lệnh BULK INSERT hay không.

Lưu ý

  • Để biết thêm thông tin về cách tránh tình trạng đình trệ MARS trong SQL Server, hãy xem phần "Thực thi đan xen" của bài viết "Nhiều Bộ Kết quả Hiện hoạt (MARS) trong SQL Server 2005" trên trang web Mạng lưới Nhà phát triển Microsoft (MSDN).

    Để biết thêm thông tin về bài viết "Nhiều Bộ Kết quả Hiện hoạt (MARS) trong SQL Server 2005", hãy truy cập trang web Mạng lưới Nhà phát triển Microsoft (MSDN) sau đây:
    Bài viết "Nhiều Tập Kết quả Hiện hoạt (MARS) trong SQL Server 2005"

Giải pháp

Thông tin cập nhật tích lũy

SQL Server 2008

Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Bản cập nhật tích lũy 11 dành cho SQL Server 2008 Gói Dịch vụ 1. Để biết thêm thông tin về gói cập nhật tích lũy này, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

2413738 Gói cập nhật tích lũy 11 cho SQL Server 2008 Gói Dịch vụ 1Lưu ý Vì các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới đều chứa tất cả các hotfix và tất cả bản sửa lỗi bảo mật có trong bản phát hành sửa lỗi SQL Server 2008 trước đó. Microsoft khuyên bạn nên cân nhắc áp dụng bản phát hành bản sửa lỗi mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:

970365 Các bản dựng SQL Server 2008 được phát hành sau khi SQL Server 2008 Gói Dịch vụ 1 được phát hành Các hotfix Microsoft SQL Server 2008 được tạo cho các gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng hotfix SQL Server 2008 Gói Dịch vụ 1 cho cài đặt SQL Server 2008 Gói Dịch vụ 1. Theo mặc định, mọi hotfix được cung cấp trong gói dịch vụ SQL Server sẽ được đưa vào gói dịch vụ SQL Server tiếp theo.

SQL Server 2008 R2

Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Cập nhật Tích lũy 5. Để biết thêm thông tin về cách lấy gói cập nhật tích lũy này cho SQL Server 2008 R2, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

2438347 Gói Cập nhật Tích lũy 5 cho SQL Server 2008 R2 Lưu ý Vì các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới đều chứa tất cả các bản hotfix và tất cả bản sửa lỗi bảo mật được tích hợp trong bản phát hành bản sửa lỗi SQL Server 2008 R2 trước đó. Chúng tôi khuyên bạn nên cân nhắc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:

981356 Các bản dựng SQL Server 2008 R2 được phát hành sau khi SQL Server 2008 R2 được phát hành

SQL Server 2008 Gói Dịch vụ 2

Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Bản cập nhật Tích lũy 2 cho SQL Server 2008 Gói Dịch vụ 2. Để biết thêm thông tin về gói cập nhật tích lũy này, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

2467239 Gói cập nhật tích lũy 2 cho SQL Server 2008 Gói Dịch vụ 2Lưu ý Vì các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới đều chứa tất cả các hotfix và tất cả bản sửa lỗi bảo mật có trong bản phát hành sửa lỗi SQL Server 2008 trước đó. Microsoft khuyên bạn nên cân nhắc áp dụng bản phát hành bản sửa lỗi mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:

2402659 Các bản dựng SQL Server 2008 được phát hành sau khi SQL Server 2008 Gói Dịch vụ 2 được phát hành Các hotfix Microsoft SQL Server 2008 được tạo cho các gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng hotfix SQL Server 2008 Gói Dịch vụ 2 cho cài đặt SQL Server 2008 Gói Dịch vụ 2. Theo mặc định, mọi hotfix được cung cấp trong gói dịch vụ SQL Server sẽ được đưa vào gói dịch vụ SQL Server tiếp theo.

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".

Tham khảo

Để biết thêm thông tin về câu lệnh INSERT Hàng loạt, hãy truy cập trang web MSDN sau đây:

Thông tin chung về câu lệnh BULK INSERT Để biết thêm thông tin về đích OLE DB, hãy truy cập trang web MSDN sau:

Thông tin chung về đích OLE DB Để biết thêm thông tin về Mô hình Dịch vụ Gia tăng cho SQL Server, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

935897 Mô hình Dịch vụ Gia tăng có sẵn từ nhóm SQL Server để cung cấp các bản sửa lỗi nóng cho các sự cố được báo cáo

Để biết thêm thông tin về sơ đồ đặt tên cho các bản cập nhật SQL Server, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:

822499 Giản đồ đặt tên mới cho các gói cập nhật phần mềm Microsoft SQL Server Để biết thêm thông tin về thuật ngữ cập nhật phần mềm, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở kiến thức Microsoft:

824684 Mô tả thuật ngữ chuẩn được sử dụng để miêu tả các bản cập nhật phần mềm của Microsoft