Simptomi
Pretpostavimo da ste numerički atribut stvorili u sustavima Microsoft SQL Server 2012 ili SQL Server 2014 Master Data Services (MDS) pomoću MDS web-servisa. Ako pokušate navesti više znamenki s desne strane decimalnog zareza, izračunava se točnost koja nije točna.
Na primjer:
Kada decimalni atribut s preciznošću od 16 znamenki pokušate stvoriti na sljedeći način:
MetadataAttribute newAttribute = new MetadataAttribute();
newAttribute.DataType = AttributeDataType.Number;
newAttribute.DataTypeInformation = 16;
Stvorit će se stupac s ispravnom skalom 16 i pogrešnom preciznošću 22.
Uzrok
Problem se pojavljuje jer interna pohranjena procedura MDS-a koristi pogrešnu točnost prilikom stvaranja atributa. Preciznost se računa kao 38 minus skala, što nije točno.
Rješenje
Problem je prvi put riješen u sljedećem kumulativnom ažuriranju sustava SQL Server.
Kumulativno ažuriranje 1 za SQL Server 2014 /en-us/help/2931693
Kumulativno ažuriranje 9 za SQL Server 2012 SP1 /en-us/help/2931078
O kumulativnim ažuriranjima za SQL Server
Svako novo kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim kumulativnim ažuriranjem. Pogledajte najnovija kumulativna ažuriranja za SQL Server:
- Najnovije kumulativno ažuriranje za SQL Server 2014
- Najnovije kumulativno ažuriranje za SQL Server 2012 SP1
Zaobilazno rješenje
Da biste zaobišli problem, koristite sljedeće metode koje su korisne u vašoj situaciji:
- Za SQL Server 2014 primijenite popravak.
- Za SQL Server 2012 promijenite spremljene procedure tako da koriste konstantnu vrijednost 38 (maksimalno dopušteno u SQL Server 2012) umjesto da od preciznosti oduzimaju skaliranje (@DataTypeInformation itd.).
Status
Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.