อาการ
เริ่มต้นตั้งแต่ SQL Server 2019 CU6 ข้อกําหนดสร้างตารางภายนอกได้รับการขยายให้รวมพารามิเตอร์ Rejected_Row_Location ค่านี้แสดงตําแหน่งในแหล่งข้อมูลภายนอกที่จะเขียน Error Files และ Rejected Rows ตัวเลือกนี้สามารถใช้ได้เฉพาะกับตารางภายนอกที่ใช้รูปแบบไฟล์ DELIMITEDTEXT บนแหล่งข้อมูลภายนอกประเภท Hadoop เท่านั้น
CREATE EXTERNAL TABLE [dbo] [Reject_Example]
(
[Col_one] TINYINT NULL,
[Col_two] VARCHAR(100) NULL,
[Col_three] NUMERIC(2,2) NULL
)
WITH
(
DATA_SOURCE = EDS_Reject_Row
,ตําแหน่งที่ตั้ง = '/Read_Directory'
,FILE_FORMAT = CSV
,REJECT_TYPE = VALUE
,REJECT_VALUE = 100
,REJECTED_ROW_LOCATION='/Reject_Directory'
)
เกิดอะไรขึ้นเมื่อโหลดข้อมูล
เมื่อผู้ใช้เรียกใช้สร้างตารางตามการเลือก (CTAS) บนตารางก่อนหน้า PolyBase จะสร้างไดเรกทอรีบนแหล่งข้อมูลภายนอกที่ Rejected_Row_Location ถ้าไม่มีอยู่ ไดเรกทอรีลูกที่ชื่อว่า "_rejectedrows" จะถูกสร้างขึ้น อักขระขีดล่าง (_) ทําให้แน่ใจว่าไดเรกทอรีมีการหลีกสําหรับการประมวลผลข้อมูลอื่น เว้นแต่จะมีการตั้งชื่ออย่างชัดเจนในพารามิเตอร์ ตําแหน่งที่ตั้ง ภายในไดเรกทอรีนี้ โฟลเดอร์จะถูกสร้างขึ้นตามเวลาส่งโหลดในรูปแบบ YearMonthDay-HourMinuteSecond (ตัวอย่างเช่น 20180330-173205) ในโฟลเดอร์นี้ จะมีการเขียนไฟล์สองชนิด คือ ไฟล์ _reason และไฟล์ข้อมูล
ทั้งไฟล์เหตุผลและไฟล์ข้อมูลมี queryID ที่เชื่อมโยงกับคําสั่ง CTAS เนื่องจากข้อมูลและเหตุผลอยู่ในไฟล์แยกต่างหาก ไฟล์ที่สอดคล้องกันจะมีคําต่อท้ายที่ตรงกัน
สถานะ
Microsoft ได้เพิ่มคุณลักษณะใหม่ๆ ที่อยู่ในรายการในส่วน "นําไปใช้กับ"
การแก้ปัญหา
ปัญหานี้ได้รับการแก้ไขในการอัปเดตแบบสะสมต่อไปนี้สําหรับ SQL Server:
เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server:
การอัปเดตแบบสะสมใหม่แต่ละรายการสําหรับ SQL Server จะมีโปรแกรมแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตแบบสะสมครั้งก่อนหน้า ตรวจดูการอัปเดตแบบสะสมล่าสุดสําหรับ SQL Server:
การอ้างอิง
เรียนรู้เกี่ยวกับคำศัพท์ที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์