Áp dụng cho
SQL Server 2016 Service Pack 1 SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 on Windows (all editions)

Triệu chứng

Giả sử bạn đang sử dụng Microsoft SQL Server 2016 hoặc 2017. Khi bạn xử lý bộ nhớ tối ưu hóa dữ liệu giao dịch bằng cách sử dụng bộ nhớ tối ưu hóa bảng biến với các mà tồn tại tuyên bố, bạn có thể nhận được một kết quả sai.

Ví dụ:

Bước 1: Tạo cơ sở dữ liệu và bảng được tối ưu hóa bộ nhớ.

Bản demo Tạo CƠ SỞ DỮ LIỆU

ALTER DATABASE demo ADD FILEGROUP demo_mod CONTAINS MEMORY_OPTIMIZED_DATA 

ALTER DATABASE demo ADD FILE (name='demo_mod1', filename='C:\DATA\demo_mod1') TO FILEGROUP demo_mod 

Sử dụng Bản demo

Đi

CREATE TYPE dbo. IN_MEMORY_TABLE_TYPE DƯỚI DẠNG BẢNG

( source_col INT NULL,

target_col INT not NULL

HÀM INDEX ix_InMemoryTable NONCLUSTERED (target_col)

) WITH (MEMORY_OPTIMIZED = ON)

ĐI

Bước 2: Chèn dữ liệu và cập nhật dữ liệu.

KHAI BÁO @t dbo. IN_MEMORY_TABLE_TYPE

INSERT @t ( source_col, target_col ) VALUES (10, 0),(0, 0)

chọn * từ @t

UPDATE r1 SET target_col = -1 FROM @t r1

WHERE EXISTS ( SELECT * FROM @t r2 WHERE r2.source_col > 0 )

CHỌN * TỪ @t

ĐI

Bước 3: Kiểm tra kết quả.

Kết quả Thực tế: Không phải tất cả các hàng của biến @t bảng đều được cập nhật.

source_col | target_col

----------------------

10 | -1

0 | 0

Kết quả mong đợi: Tất cả các hàng sẽ được cập nhật để có target_col = -1.

source_col | target_col

----------------------

10 | -1

0 | -1.

Giải pháp

Sự cố này đã được khắc phục trong các bản cập nhật tích lũy sau đây SQL Server:

      Bản cập nhật Tích lũy 1 cho SQL Server 2017 

      Bản cập nhật tích lũy 5 cho SQL Server 2016 SP1

Mỗi bản cập nhật tích lũy mới dành cho SQL Server sẽ chứa tất cả các bản cập nhật nóng và tất cả các bản sửa lỗi bảo mật được bao gồm 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 dành cho doanh SQL Server:

Bản cập nhật tích lũy mới nhất cho SQL Server 2017

Các bản cập nhật tích lũy mới nhất cho SQL Server 2016

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.