IF object_id('s_sumar_s') IS NOT NULLBEGIN DROP TABLE s_sumar_s;END;CREATE TABLE s_sumar_s (ID INT IDENTITY(1,1) NOT NULL, faux_number VARCHAR(116) CONSTRAINT CK_faux_number CHECK (RIGHT('00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'+faux_number,116) LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),useful_faux_number AS RIGHT('00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'+faux_number,116));
INSERT INTO s_sumar_s(faux_number)SELECT '1267'UNION ALL SELECT '231'UNION ALL SELECT '428973681279460182436';SELECT * FROM s_sumar_s ORDER BY useful_faux_number ASC;
IF object_id('s_sumar_s') IS NOT NULLBEGIN DROP TABLE s_sumar_s;END;CREATE TABLE s_sumar_s (ID INT IDENTITY(1,1) NOT NULL, faux_number VARCHAR(116) CONSTRAINT CK_faux_number CHECK (RIGHT('00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'+faux_number,116) LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),useful_faux_number AS RIGHT('00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'+faux_number,116));INSERT INTO s_sumar_s(faux_number)SELECT '1267'UNION ALL SELECT '231'UNION ALL SELECT '428973681279460182436';SELECT * FROM s_sumar_s ORDER BY useful_faux_number ASC;
ID faux_number useful_faux_number----------- -------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------2 231 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002311 1267 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012673 428973681279460182436 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000428973681279460182436
SELECT * FROM s_sumar_s ORDER BY faux_number ASC;
ID faux_number useful_faux_number----------- -------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------1 1267 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012672 231 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002313 428973681279460182436 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000428973681279460182436
IF object_id('s_sumar_s') IS NOT NULLBEGIN DROP TABLE s_sumar_s;END;CREATE TABLE s_sumar_s (ID INT IDENTITY(1,1) NOT NULL, faux_number VARCHAR(116) CONSTRAINT CK_faux_number CHECK (RIGHT(REPLICATE('0',120) + faux_number,116) NOT LIKE '%[^0-9]%'),useful_faux_number AS RIGHT(REPLICATE('0',120) + faux_number,116));INSERT INTO s_sumar_s(faux_number)SELECT '1267'UNION ALL SELECT '231'UNION ALL SELECT '428973681279460182436';--this should fail against the constraint.insert into s_sumar_s(faux_number) values ('Alphabits42')SELECT * FROM s_sumar_s ORDER BY useful_faux_number ASC;