Agrandir un champ smallint en int
Bonjour,
Je fais souvent des interventions chez un client pour réparer un batch SQL que j'avais repris par une collègue, je l'avais également retouché suite à une demande d'évolution, depuis, j'ai très régulièrement l'erreur de dépassement arithmétique où je multiplie 2 champs de type smallint .
Exemple de requête qui ne fonctionne pas tout le temps :
Code:
1 2 3 4 5 6 7 8 9
| declare @DateDebut varchar(20)='31/07/2017'
declare @DateFin varchar(20)='05/11/2017'
select round(sum(qte_canard * NB_REPAS)*1.0/56181,2)
from LOTS_DECOUPE as LOT
inner join TRACABILITE as TRAC on trac.ID_TRACABILITE=lot.ID_TRACABILITE
and CONVERT(date, jour_g) between CONVERT(date, @DateDebut) and CONVERT(date, @DateFin)
and TRAC.CODE_TRACABILITE not like '%XXX%' and LEN(TRAC.CODE_TRACABILITE)=13
and CODE_TRACABILITE <> '0000000000000' |
Je voulais savoir s'il y aurait des précautions à prendre pour faire passer les champs qte_canard et NB_REPAS de smallint à int, sans avoir à retoucher aux données déjà enregistrées en base.
Merci