Attiecas uz
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Simptomi

Pieņemiet, ka programmā Microsoft SQL Server 2012 vai SQL Server 2014 datu pakalpojumi (MDS) tiek izveidots skaitlisks atribūts, izmantojot MDS tīmekļa pakalpojumu. Kad mēģināt norādīt papildu ciparus pa labi no decimālzīmes, tiek aprēķināta nepareiza precizitāte. Piemēram, ja mēģināt izveidot decimāldaļu atribūtu, kuram ir 16 skaitļu precizitāte, rīkojieties šādi:

MetadataAttribute newAttribute = new MetadataAttribute(); newAttribute.DataType = AttributeDataType.Number; newAttribute.DataTypeInformation = 16;

Tiek izveidota kolonna, kurā ir pareizais 16 un nepareizas precizitātes diapazons 22.

Cēlonis

Problēma rodas tāpēc, ka iekšējai MDS saglabātai procedūrai, veidojot atribūtu, tiek izmantots nepareizs precizitātes aprēķins. Precizitāte tiek aprēķināta kā 38 mīnus skala, kas nav pareiza.

Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:

Risinājums

Lai novērstu šo problēmu, izmantojiet tālāk norādītās metodes, kas tiek novērtētas atbilstoši jūsu situācijai.

  • SQL Server 2014 lietojiet labojumu.

  • Ja lietojat SQL Server 2012, mainiet saglabātās procedūras, lai izmantotu konstantu vērtību 38 (max, ko pieļauj SQL Server 2012), nevis atņemtu skalu (@DataTypeInformation utt.) no precizitātes.

Statusa

Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.