Có cách nào hiệu quả để xem nguyên nhân cho chuỗi String hay dữ liệu nhị phân sẽ bị cắt ngắn không?


13

Đây là một theo dõi về câu hỏi này . Nó cũng liên quan đến yêu cầu tính năng này từ Microsoft.

Tuy nhiên, nhiều năm đã trôi qua và một số bản phát hành lớn đã tiếp cận thị trường kể từ khi nó được báo cáo.

Câu hỏi: SQL Server 2017 có cung cấp bất kỳ cơ chế nào để dễ dàng tìm ra nguyên nhân gốc của lỗi này không? Hoặc nó khó điều tra như khoảng 9 năm trước khi vấn đề được báo cáo?


Tôi dành ít nhất 4 giờ một tuần để gỡ lỗi lỗi này và SQL thậm chí không có trong mô tả công việc của tôi.
Tonny

Câu trả lời:


20

Không có thay đổi. SQL Server 2017 vẫn cung cấp thông báo lỗi mơ hồ tương tự và không cung cấp bất kỳ cơ chế nào để khám phá hàng / cột vi phạm.

Mục Connect này đã có hơn 1.600 phiếu bầu khi Connect đã nghỉ hưu:

Nhận xét mới nhất ở đó, từ Microsoft, là:

Cập nhật mới nhất - nhà phát triển làm việc trên nó hiểu những thách thức liên quan đến việc tạo ra một bản sửa lỗi đầy đủ. Có thể rất khó để đưa thông tin về các cột cần thiết để tạo thông báo lỗi đầy đủ xuống chức năng chuyển đổi thực tế theo cách không ảnh hưởng đến hiệu suất chèn hoặc cập nhật. Chúng tôi có thể triển khai một cái gì đó rẻ trong thời gian ngắn như ghi nhật ký loại và độ dài của dữ liệu bị cắt ngắn. Vẫn còn quá sớm để biết khi nào một bản sửa lỗi như vậy sẽ đạt được một bản phát hành công khai.

Điều tốt nhất tôi có thể đề xuất là bỏ phiếu cho mục đó (và nhận xét về nó, mô tả giá trị doanh nghiệp mà điều này sẽ thêm cho bạn).


+1. Để thêm một trong những cách kém hiệu quả hơn để tìm ra dấu vết (nếu bạn không có nhật ký ứng dụng) là sử dụng trình lược tả và bộ lọc (theo máy chủ / người dùng / ứng dụng / truy vấn / vv). Ngoài ra điều này có thể hữu ích: nimblegecko.com/ khăn
jean

3

Những lời cầu nguyện của chúng tôi đã được trả lời như được chỉ ra bởi bài đăng trên blog MDSN này :

SQL Server 2019 giới thiệu một thông báo mới, với thông tin ngữ cảnh bổ sung.

Lỗi bây giờ sẽ có ý nghĩa hơn nhiều:

Msg 2628, Cấp 16, Trạng thái 1, Dòng 14 hoặc dữ liệu nhị phân sẽ bị cắt ngắn trong bảng 'DbName.SchemaName.TableName', cột 'Col'. Giá trị rút gọn: '...'.

Ngoài ra, tin tốt là thay đổi này sẽ được cập nhật trong cả năm 2017 và 2016:

Thông báo mới này cũng được nhập vào SQL Server 2017 CU12 (và trong SQL Server 2016 SP2 CU sắp tới), nhưng không phải theo mặc định. Bạn cần bật cờ theo dõi 460 để thay thế thông báo ID 8152 bằng 2628, ở cấp độ phiên hoặc máy chủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.