อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณมีเซิร์ฟเวอร์ที่มีการเชื่อมโยงใน Microsoft SQL Server ๒๐๐๘ R2
-
มีตารางบนเซิร์ฟเวอร์ที่มีการเชื่อมโยงที่มีคอลัมน์ชนิดSMALLDATETIME
-
คุณเรียกใช้การ แทรก หรือ แทรกลงใน คำสั่งเมื่อต้องการแทรกระเบียนที่ประกอบด้วยข้อมูลชนิด DATETIME ลงในตาราง
ในสถานการณ์สมมตินี้คำสั่งล้มเหลว นอกจากนี้คุณจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
ผู้ให้บริการ OLE DB "SQLNCLI10" สำหรับเซิร์ฟเวอร์ที่มีการเชื่อมโยง "LinkServerName " ส่งกลับข้อความ "การดำเนินการการดำเนินการ ole DB แบบหลายขั้นตอนที่สร้างข้อผิดพลาด ตรวจสอบแต่ละค่าสถานะ OLE DB ถ้าพร้อมใช้งาน ไม่ทำงานเสร็จสิ้น " Msg ๗๓๔๔ระดับ16สถานะ1บรรทัด 1The OLE DB ให้ "SQLNCLI10" สำหรับเซิร์ฟเวอร์ที่มีการเชื่อมโยง "LinkServerName" ไม่สามารถแทรกลงในตาราง "ชื่อ" ได้เนื่องจากคอลัมน์ "ColumnName" การแปลงล้มเหลวเนื่องจากค่าข้อมูล overflowed ชนิดข้อมูลที่ผู้ให้บริการใช้
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากปัญหาการแมปชนิดข้อมูลใน SQL Server
การแก้ไข
ข้อมูลโปรแกรมอัปเดตสะสม
SQL Server ๒๐๐๘ R2 Service Pack 2
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน3การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๐๘ R2 Service Pack 2 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๗๕๔๕๕๒ แพคเกจโปรแกรมปรับปรุงที่สะสม3สำหรับ SQL Server ๒๐๐๘ R2 Service Pack 2หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๐๘ R2 Service Pack 2 เวอร์ชันก่อนหน้านี้ได้รับการแก้ไขแล้ว เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๗๓๐๓๐๑ รุ่นของ SQL Server ๒๐๐๘ R2 รุ่นที่เผยแพร่หลังจาก SQL Server ๒๐๐๘ R2 Service Pack 2 ถูกเผยแพร่แล้ว
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการแก้ไขปัญหานี้ให้ใช้วิธีการใดวิธีการหนึ่งต่อไปนี้:
-
โยนข้อมูลชนิด DATETIME ไปยังชนิดของ SMALLDATETIME ในคำสั่ง
-
เปลี่ยน SMALLDATETIME พิมพ์คอลัมน์ไปยังชนิด DATETIME บนเซิร์ฟเวอร์ที่เชื่อมโยง