Triệu chứng
Bạn xuất bảng dưới dạng tệp CSV bằng cách sử dụng Microsoft SQL Server Management Studio (SSMS) hoặc Công cụ Dữ liệu SQL Server (SSDT). Ví dụ: bạn xuất bảng sang định dạng CSV trong dự án SQL Server Integration Services (SSIS).
Nếu bạn chọn dấu ngoặc kép (") làm hạn định văn bản và nếu bất kỳ bản ghi nào chứa dấu ngoặc kép, dấu này có thể không được thoát chính xác trong đầu ra.
Ví dụ
Dữ liệu gốc |
big"dữ liệu |
Đầu ra dự kiến |
"big""dữ liệu" |
Đầu ra thực tế |
"big"data" |
Giải pháp
Bản sửa lỗi cho sự cố này được bao gồm trong bản cập nhật sau đây dành cho SQL Server:
Bản cập nhật tích lũy 8 cho SQL Server 2017
Sau khi cài đặt bản cập nhật này, khi bạn xuất bảng bằng cách sử dụng định dạng CSV, bạn cần bật chức năng "Thoát Hạn định" bằng cách đặt giá trị của bảng thành True.
Chức năng "Escape Qualifier" cần được thay đổi trong SSDT cho gói SSIS đã lưu khi bạn sử dụng hành vi thoát.
Ảnh chụp màn hình sau đây hiển thị chi tiết của thuộc tính EscapeQualifier:
Lưu ý:
-
Trình hướng SQL Server Nhập và Xuất có giới hạn mà bạn không thể bật chức năng này vì thuộc tính EscapeQualifier bị vô hiệu hóa theo mặc định.
-
Bạn chỉ có thể lưu gói SSIS thông qua trình hướng dẫn và sửa đổi thuộc tính đó thông qua SSDT để có được khả năng này.
-
Để biết thêm thông tin, hãy xem Thuộc tính Tùy chỉnh Tệp Phẳng - SQL Server Tích hợp Dịch vụ (SSIS) | Microsoft Learn.
Giới thiệu SQL Server dựng
Mỗi bản dựng mới dành SQL Server sẽ chứa tất cả các bản cập nhật nóng và bản sửa lỗi bảo mật trong bản dựng trước đó. Chúng tôi khuyên bạn nên cài đặt bản dựng mới nhất cho phiên bản SQL Server:
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ữ tiêu chuẩn mà Microsoft sử dụng để mô tả các bản cập nhật phần mềm.