Inséeer valeur numerique

Le
Fdecourt
Bonjour,

Je travaille sur SQL Server, et j'aurais besoin de mettre à jour une
table, en raplaçant le champ d'une colonne par la valeur maximal d'une
autre table.

En soit cela fonctionne sans problème.

Par contre, la ou ca ne passe pas correctement c'est que je voudrais
que cette valeur soit itnégré comme INT, et non comme VARCHAR :

UPDATE MATABLE set NUMERO=1 where CODE1='2020' and CODE2='5ECV'

A prioiri cela devrait mettre 1 dans la colonne NUMERO, au format
numérique.

Or ce n'est pas ce qui se passe.

Sous SQL server, le format numérique est aligné à droite. Dans mon
cas, la valeur se retrouve aligné à gauche, alors que toutes les
autres valeurs des autres lignes sont bien alignées à droite.

Cette colonne est ensuite utilisé par l'ERP pour être incrémenté.
Comme la valeur ne semble pas être numérique, toute mon incrémentatio=
n
saute, et je me retrouve avec des valeur improbable (dans le cas qui
nous concerne, l'enregistrement suivant sera 100000000001 au lieu de 2

Comment pourrais-je, en SQL forcer un ENTIER ?
J'ai essayer CONVERT et CAST.

Y aurait-il une autre solution ?

Merci

Cordialement,

F.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fdecourt
Le #19408281
Je précise que la colonne NUMERO est de type 'CHAR' et non integer,
mais je souhaite quand même renseigné un entier.
TedIF
Le #19412601
Après mure réflexion, Fdecourt a écrit :
Je précise que la colonne NUMERO est de type 'CHAR' et non integer,
mais je souhaite quand même renseigné un entier.



UPDATE MATABLE set NUMERO='1' where CODE1='2020' and CODE2='5ECV'
????

--

Dominique
Fdecourt
Le #19413541
Salut,

Merci pour ta réponse. C'est ce que j'avais testé au début, mais cela
ne fonctionnait pas, car la valeur était systématiquement mise en
alpha...

Ce que j'ai du faire (après avoir bien galéré), c'est ajouter X
espaces devant ma valeur, puis transformer ma valeur numérique en
alpha, et l'insérer dans ma table :

UPDATE MATABLE
SET a.numnext=space(12 - LEN(1)) + convert(char, 1)
FROM MATABLE
WHERE CODE1='2020' and CODE2='5ECV'

J'ai bien sur simplifié la requête..... en réalité, à la place de 1,
je vais chercher une valeur dans une autre table....

La difficulté venait, et je m'en suis rendu compte tard, du mode de
fonctionnement de l'ERP.

Cordialement

F.
WOLO Laurent
Le #19565361
Il suffit que vous puissier modifier le tyde de données du champs
"Fdecourt" news:
Bonjour,

Je travaille sur SQL Server, et j'aurais besoin de mettre à jour une
table, en raplaçant le champ d'une colonne par la valeur maximal d'une
autre table.

En soit cela fonctionne sans problème.

Par contre, la ou ca ne passe pas correctement c'est que je voudrais
que cette valeur soit itnégré comme INT, et non comme VARCHAR :

UPDATE MATABLE set NUMERO=1 where CODE1='2020' and CODE2='5ECV'

A prioiri cela devrait mettre 1 dans la colonne NUMERO, au format
numérique....

Or ce n'est pas ce qui se passe....

Sous SQL server, le format numérique est aligné à droite. Dans mon
cas, la valeur se retrouve aligné à gauche, alors que toutes les
autres valeurs des autres lignes sont bien alignées à droite.

Cette colonne est ensuite utilisé par l'ERP pour être incrémenté.
Comme la valeur ne semble pas être numérique, toute mon incrémentation
saute, et je me retrouve avec des valeur improbable (dans le cas qui
nous concerne, l'enregistrement suivant sera 100000000001 au lieu de 2

Comment pourrais-je, en SQL forcer un ENTIER ?
J'ai essayer CONVERT et CAST.

Y aurait-il une autre solution ?

Merci

Cordialement,

F.
Publicité
Poster une réponse
Anonyme