อาการ
สมมติว่าคุณสร้างแอตทริบิวต์ที่เป็นตัวเลขใน Microsoft SQL Server ๒๐๑๒หรือ SQL Server ๒๐๑๔ Master Data Services (MDS) โดยใช้บริการเว็บ MDS เมื่อคุณพยายามระบุตัวเลขเพิ่มเติมทางด้านขวาของจุดทศนิยมการคำนวณความแม่นยำที่ไม่ถูกต้อง ตัวอย่างเช่น: เมื่อคุณพยายามสร้างแอตทริบิวต์ทศนิยมที่มีความแม่นยำ16หลักด้วยการทำสิ่งต่อไปนี้
MetadataAttribute newAttribute = new MetadataAttribute(); newAttribute.DataType = AttributeDataType.Number; newAttribute.DataTypeInformation = 16;
คอลัมน์ถูกสร้างขึ้นที่มีมาตราส่วนที่ถูกต้องของ16และความแม่นยำที่ไม่ถูกต้องของ22
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากกระบวนงานที่เก็บไว้ของ MDS ภายในใช้การคำนวณความแม่นยำที่ไม่ถูกต้องเมื่อคุณสร้างแอตทริบิวต์ ความแม่นยำจะถูกคำนวณเป็น๓๘ลบมาตราส่วนที่ไม่ถูกต้อง
การแก้ไข
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมของ SQL Server ครั้งแรก
การอัปเดตที่สะสม1สำหรับ SQL Server ๒๐๑๔ /en-us/help/2931693
การอัปเดตที่สะสม9สำหรับ SQL Server ๒๐๑๒ SP1 /en-us/help/2931078
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการแก้ไขปัญหานี้ให้ใช้วิธีการต่อไปนี้ที่ได้รับการชื่นชมสำหรับสถานการณ์ของคุณ:
-
สำหรับ SQL Server ๒๐๑๔ให้ใช้การแก้ไข
-
สำหรับ SQL Server ๒๐๑๒ให้เปลี่ยนกระบวนงานที่เก็บไว้เพื่อใช้ค่าคงที่๓๘ (สูงสุดที่อนุญาตโดย SQL Server ๒๐๑๒) แทนที่จะลบสเกล (@DataTypeInformation และอื่นๆ) จากความแม่นยำ
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"