Myślę, że powinieneś wziąć pod uwagę, że przeczytane wytyczne dotyczą sposobu wyświetlania faktury , a nie jak powinno być przechowywane w bazie danych.
Gdy liczba jest przechowywana jako INT, jest to czysta liczba. Jeśli dodasz zera na początku i zapiszesz go ponownie, nadal będzie to ten sam numer.
Możesz wybrać pole NUMER w następujący sposób lub utworzyć widok dla tej tabeli:
SELECT LPAD(NUMER,6,'0') AS NUMER
FROM ...
Lub zamiast zmieniać dane po wybraniu ich z bazy danych, rozważ uzupełnienie liczby zerami podczas jej wyświetlania i tylko wtedy, gdy ją wyświetlasz.
Myślę, że twoje wymaganie, aby dane historyczne pozostały takie same, jest kwestią sporną. Nawet w przypadku danych historycznych faktura o numerze 001203 jest taka sama jak faktura o numerze 1203.
Jeśli jednak absolutnie musisz to zrobić tak, jak opisujesz, konwersja do pola VARCHAR może zadziałać. Przekonwertowane dane historyczne można przechowywać bez zmian, a wszelkie nowe wpisy można uzupełnić do wymaganej liczby zer. Ale nie polecam tego.