KB3030619-khắc phục sự cố: dữ liệu không chính xác được trả về khi bạn truy vấn cột ngày trong SQL Server 2014

Triệu chứng

Giả định rằng bạn có một bảng chứa cột kiểu dữ liệu ngày và bạn đã thực hiện chỉ mục Cửa hàng cột liên cụm (ccsi) trên bảng này trong Microsoft SQL Server 2014. Khi bạn cố gắng truy vấn bảng bằng cách sử dụng kiểu dữ liệu ngày làm vòng loại, dữ liệu không chính xác có thể được trả về. Ví dụ:create table tab2(c1 int, c2 date, c3 varchar(10)) CREATE CLUSTERED COLUMNSTORE INDEX [CCI_tab2] ON [tab2] WITH (DROP_EXISTING = OFF)GO select *FROM tab2 S -- Table with clustered columnstore indexWHERE S.c2 = @date -- variable of Date datatype

Giải pháp

Thông tin về gói dịch vụ

Để giải quyết sự cố này, bạn có thể lấy gói dịch vụ 1 cho SQL Server 2014.

Để biết thêm thông tin về SQL Server 2014 gói dịch vụ 1 (SP1), hãy xem các lỗi đã được khắc phục trong SQL server 2014 Service Pack 1.

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

Vấn đề này lần đầu tiên đã được khắc phục trong bản Cập Nhật tích lũy SQL Server 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:

Thông tin Bổ sung

Sử dụng mã sau đây để tái tạo vấn đề này:create table tab1(c1 int, c2 date) insert into tab1values (1 , '2000-01-01') CREATE NONCLUSTERED INDEX [idxtab1c2] ON tab1( c2 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) create table tab2(c1 int, c2 date, c3 varchar(10)) insert into tab2values (1, '2000-01-01', 'test') CREATE CLUSTERED COLUMNSTORE INDEX [CCI_tab2] ON [tab2] WITH (DROP_EXISTING = OFF)GO create table t([runId] int not null, [scalingFactor] float not null) -- REPRO QUERY. Below batch is expected to return a row but we don’t get ittruncate table tDECLARE @date DATE, @numDates INT INSERT INTO t VALUES(1, 1)DECLARE @date DATE, @numDates INTSELECT @date = max(R.c2) , @numDates = COUNT(distinct R.c2)FROM tab1 R INNER JOIN t D ON R.c1 = D.runId select *FROM tab2 S -- CCIWHERE S.c2 = @date

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

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

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft dùng nội bộ

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×