Si applica a
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)

Sintomi

Si supponga di creare un attributo numerico in Microsoft SQL Server 2012 o in SQL Server 2014 Master Data Services (MDS) tramite il servizio Web MDS. Quando si prova a specificare più cifre sul lato destro di punti decimali, viene calcolata la precisione non corretta. Ad esempio, quando si tenta di creare un attributo Decimal con precisione di 16 cifre, eseguire le operazioni seguenti:

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

Viene creata una colonna con la scala corretta di 16 e la precisione non corretta di 22.

Causa

Il problema si verifica perché una stored procedure interna di MDS usa il calcolo di precisione errato quando si crea l'attributo. La precisione viene calcolata come 38 meno la scala, che non è corretta.

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:

Soluzione alternativa

Per risolvere il problema, usare i metodi seguenti apprezzati per la situazione:

  • Per SQL Server 2014, applicare la correzione.

  • Per SQL Server 2012, modificare le stored procedure in modo da usare un valore costante di 38 (max consentito da SQL Server 2012) anziché sottrarre la scala (@DataTypeInformation e così via) dalla precisione.

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.