T-SQL Insérer le numéro avec le zéro principal dans le tableau

J'ai besoin d'insert dans ma table un nombre 0000128 , mais il voit ce nombre comme 128 , j'essayais aussi de changer le type de int à varchar , mais il n'y avait pas de différence.

Est-il possible de faire cela?

Stocker comme varchar devrait fonctionner correctement.

 DECLARE @T TABLE ( V VARCHAR(10)); INSERT INTO @T VALUES ('0000128'); SELECT * FROM @T 

Vous devez être converti en numérique en cours de route et perdre les zéros en tête.

Il n'y a pas de nombre avec un zéro en tête, seulement des représentations textuelles de nombres avec des zéros en tête.

J'ai déjà rencontré ce problème lors de l'exécution d'ETL. C'est ainsi que je l'ai résolu.

 -- declare and assign -- this could be from anywhere declare @int_NUMBER int = 128 -- show the original select @int_NUMBER -- steps: -- first: cast the number as a varchar -- second: create a ssortingng of zeros. The number of zeros should be equal to the max size of this "number". -- In this example, the max size this "number" is 7 places. -- third: concat the leading zeros in front of the varchar of the number -- forth: take the number of max places from the right -- this way you will always get the proper amount of leading zeros select right('0000000' + cast(@int_NUMBER as varchar(10)),7) 

Résultats:


128

(1 rangée (s) touchée (s))


0000128

(1 rangée (s) touchée (s))