Gejala
Misalnya Anda membuat atribut numerik di Microsoft SQL Server 2012 atau SQL Server 2014 Master data Services (MDS) dengan menggunakan layanan web MDS. Ketika Anda mencoba untuk menentukan digit lainnya di sisi kanan poin desimal, presisi yang salah dihitung. Misalnya: ketika Anda mencoba membuat atribut desimal yang memiliki 16 digit presisi dengan melakukan:
MetadataAttribute newAttribute = new MetadataAttribute(); newAttribute.DataType = AttributeDataType.Number; newAttribute.DataTypeInformation = 16;
Kolom dibuat yang memiliki skala 16 dan presisi yang tepat dari 22.
Penyebab
Masalah ini terjadi karena prosedur internal MDS yang disimpan menggunakan perhitungan presisi yang salah ketika Anda membuat atribut. Presisi dihitung sebagai 38 dikurangi skala, yang tidak benar.
Pemecahan Masalah
Masalah ini pertama kali diperbaiki dalam pembaruan kumulatif SQL Server berikut ini.
Pembaruan kumulatif 1 untuk SQL Server 2014 /en-us/help/2931693
Pembaruan kumulatif 9 untuk SQL Server 2012 SP1 /en-us/help/2931078
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Penyelesaian Masalah
Untuk mengatasi masalah ini, gunakan metode berikut yang dihargai untuk situasi Anda:
-
Untuk SQL Server 2014, Terapkan perbaikan.
-
Untuk SQL Server 2012, Ubah prosedur yang disimpan untuk menggunakan nilai konstan 38 (maks yang diizinkan oleh SQL Server 2012) dan bukan kurangi skala (@DataTypeInformation, dan seterusnya) dari presisi.
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".