KB4522126 - KHẮC PHỤC: Bạn có thể nhận được kết quả sai khi truy vấn sys.database_scoped_configurations trong SQL Server 2016

Áp dụng cho
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Triệu chứng

Khi bạn chạy một truy vấn chèn đầu ra của sys.database_scoped_configurations vào biến bảng hoặc bảng tạm thời trong Microsoft SQL Server 2016, rồi chọn từ biến bảng hoặc bảng tạm thời đó như được xem trong ví dụ bên dưới, bạn có thể nhận thấy rằng chỉ có một mục nhập cho mỗi cơ sở dữ liệu.

THẢ BẢNG NẾU TỒN TẠI #h

CREATE TABLE #h(configuration_id INT, name, sysname, value SQL_VARIANT, value_for_secondary SQL_VARIANT)

INSERT INTO #h(configuration_id, name, value,value_for_secondary)

CHỌN * TỪ sys.database_scoped_configurations D'

CHỌN * TỪ #h H

hoặc

KHAI TABLE @database\_scoped\_configurations (x INT);

CHÈN VÀO @database\_scoped\_configurations

CHỌN configuration_id

TỪ sys.database_scoped_configurations;

CHỌN * TỪ @database\_scoped\_configurations

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

Giải pháp

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

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 vấn đề này, bạn có thể thêm mệnh đề TOP vào phần SELECT của nội dung chèn để có kết quả đúng. Sau đây là ví dụ:

DECLARE @database_scoped_configurations TABLE(x INT);

CHÈN VÀO @database_scoped_configurations

CHỌN 100 configuration_id HÀNG ĐẦU

TỪ sys.database_scoped_configurations

Tham khảo

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