2017-09-12 23 views
0

Je sais au sujet de la question trouvé sur How do I control the datatype of a computed column?Utiliser Convertir fonction pour changer de type de données colonne calculée

ajouter une colonne en utilisant le code suivi. Cependant, il n'y a aucun type de données trouvé dans l'explorateur d'objets> Design. J'ai besoin de l'emploi de résultat final pour montrer l'Explorateur d'objets comme numérique de l'emploi (9,0)

alter table dbo.equi add employment AS CAST((m1+m2+m3)/3 AS numeric(9)); 

J'ai trois colonnes

m1 numeric (6,0) 
m2 numeric (6,0) 
m3 numeric (6,0) 

Donc, pour suivre l'exemple de la question précédente, devrais-je utiliser quelque chose comme ceci:

CONVERT(numeric(9,0), (
         CONVERT(NUMERIC(6, 0), [M1]) 
         * CONVERT(NUMERIC(6, 0), [M2]) 
         * CONVERT(NUMERIC(6, 0), [M3] 
        ) 

Répondre

0

Dans votre cas, vous n'avez pas besoin CONVERT(NUMERIC(6,0),...) parce qu'ils sont redondants comme les colonnes sont déjà NUMERIC(6,0), il suffit d'utiliser:

CONVERT(numeric(9,0), [M1] * [M2] * [M3]) 

En outre, vous n'avez pas besoin d'abaisser la précision parce que le maximum precision of the operation est (6 + 6 + 6 + 1) = 19 et il ne dépasse pas la précision maximale de 38 qui prend en charge SQL Server (en la question que vous liez, ils ont besoin de le faire parce que l'une des colonnes a déjà une précision de 38, donc toute multiplication dépasserait la précision maximale).